cluster redis

cluster - ¿Persiste Redis los datos?



redis cluster (4)

El servidor Redis guarda todos sus datos en el disco duro de vez en cuando, proporcionando así algún nivel de persistencia.

Se guardan los datos en uno de los siguientes casos:

  • automáticamente de vez en cuando
  • cuando llama manualmente BGSAVE comando BGSAVE
  • cuando Redis se está cerrando

Pero los datos en redis no son realmente persistentes, porque:

  • bloqueo del proceso de redis significa perder todos los cambios desde el último guardado
  • BGSAVE operación BGSAVE solo se puede realizar si tienes suficiente RAM libre (la cantidad de RAM extra es igual al tamaño de redis DB)

Nota: BGSAVE requisito de RAM BGSAVE es un problema real, porque redis continúa trabajando hasta que no haya más RAM para ejecutarse, pero deja de guardar datos en el disco duro mucho antes (a aproximadamente el 50% de la RAM).

Para obtener más información, vea http://redis.io/topics/persistence .

Entiendo que Redis sirve todos los datos de la memoria, pero también persiste en el reinicio del servidor para que cuando el servidor se reinicie lea en la memoria todos los datos del disco. ¿O es siempre una tienda en blanco que solo almacena datos mientras las aplicaciones se ejecutan sin persistencia?


Le sugiero que lea sobre esto en http://redis.io/topics/persistence . Básicamente, se pierde la persistencia garantizada cuando se aumenta el rendimiento utilizando solo el almacenamiento en memoria. Imagine un escenario en el que INSERTAR en la memoria, pero antes de que persista en el disco, pierda potencia. Habrá pérdida de datos.

Redis admite las llamadas "instantáneas". Esto significa que hará una copia completa de lo que está en la memoria en algunos puntos en el tiempo (por ejemplo, cada hora completa). Cuando pierdes energía entre dos instantáneas, perderás los datos del tiempo transcurrido entre la última instantánea y el bloqueo (no tiene que ser un corte de energía). Redis comercializa la seguridad de los datos en comparación con el rendimiento, como la mayoría de los NoSQL-DB.

La mayoría de las bases de datos NoSQL siguen un concepto de replicación entre múltiples nodos para minimizar este riesgo. Redis se considera más una memoria caché rápida en lugar de una base de datos que garantiza la coherencia de los datos. Por lo tanto, sus casos de uso suelen diferir de los de las bases de datos reales: puede, por ejemplo, almacenar sesiones, contadores de rendimiento o lo que sea con un rendimiento inigualable y sin pérdida real en caso de falla. Pero el procesamiento de pedidos / historial de compras, etc., se considera un trabajo para las bases de datos tradicionales.


Puede elegir no persistencia en absoluto. Mejor rendimiento, pero todos los datos pierden cuando Redis se apaga.

Redis tiene dos mecanismos de persistencia: RDB y AOF.RDB utiliza una instantánea global del planificador y AOF escribe la actualización en un archivo de registro de solo apap, similar a MySql.

Puede usar uno de ellos o ambos. Cuando Redis se reinicia, construye datos a partir de la lectura del archivo RDB o AOF.


Es una cuestión de configuración. No puede tener ninguna persistencia parcial o total de sus datos en Redis. La mejor decisión dependerá de las necesidades técnicas y comerciales del proyecto.

De acuerdo con la documentación de Redis sobre la persistencia , puede configurar su instancia para guardar datos en el disco de vez en cuando o en cada consulta, en pocas palabras. Proporcionan dos estrategias / métodos AOF y RDB (lea la documentación para ver detalles sobre eso), puede usar cada uno solo o en conjunto.

Si quiere una "persistencia SQL similar", han dicho:

La indicación general es que debe usar ambos métodos de persistencia si desea un grado de seguridad de datos comparable al que PostgreSQL puede proporcionarle.