Con "durable" me refiero a que el servidor puede bloquearse en cualquier momento, y mientras el disco permanezca intacto, no se pierden datos (consulte ACID). Parece que para eso es el modo diario, pero si habilita el diario, ¿no es eso un inconveniente el propósito de operar con datos en memoria? Las operaciones de lectura pueden no verse afectadas por el registro en diario, pero parece que el registro en diario mataría su rendimiento de escritura.¿Redis es un almacén de datos duradero?
Respuesta
Redis no es generalmente implementado como un almacén de datos "duradero" (en el sentido de "D" en ACID.), Incluso con diario. La mayoría de los casos de uso sacrifican intencionalmente un poco de durabilidad a cambio de velocidad.
Sin embargo, el modo de almacenamiento "anexar solo archivo" se puede configurar opcionalmente para que funcione de manera duradera, a costa del rendimiento. Tendrá que pagar por un fsync() en cada modificación. Para configurar esto, establecer estas dos opciones en el archivo .conf:
appendonly yes
appendfsync always
A partir de los documentos: How durable is the append only file?
Comprobar redis.conf, puede configurar cuántas veces se Redis fsync() de datos en el disco. Hay tres opciones:
- FSYNC() cada vez que un nuevo comando es anexa al archivo de registro de datos anexados. Muy muy lento, muy seguro.
- Fsync() una vez cada segundo. Lo suficientemente rápido, y puede perder 1 segundo de datos si hay un desastre .
- Nunca fsync(), simplemente ponga sus datos en las manos del sistema operativo . El método más rápido e inseguro.
(Tenga en cuenta que el valor predeterminado para appendfsync en el archivo de configuración con el envío Redis post-2.0.0 es everysec
, y no always
.)
Bueno saberlo. ¿Puedes proporcionar un enlace para apoyar lo que estás diciendo? – allyourcode
@FrankFarmer He editado la respuesta un poco, porque tenía información obsoleta sobre la configuración predeterminada y también "enterré el titular" un poco al marcar con "No". Siéntase libre de mejorar mis mejoras. :-) – HostileFork
@HostileFork, dados los cambios sustanciales que ha realizado, creo que será mejor que envíe su propia respuesta. Ha pasado el tiempo suficiente para que una nueva perspectiva sea ciertamente bienvenida –
- 1. ¿Cómo implementar "desencadenar" para el almacén de datos redis?
- 2. ¿Qué es un almacén de datos?
- 3. ¿Qué sucede con un almacén de datos de Redis si los datos exceden el RAM disponible?
- 4. Cómo utilizar Redis como un almacén de valor clave distribuida
- 5. Backbone sin un almacén de datos
- 6. Lucene como almacén de datos
- 7. Cuándo utilizar un almacén de claves/valores como Redis en su lugar/junto a una base de datos SQL?
- 8. Estructuras de datos complejas Redis
- 9. Redis es ZINCRBY atómico?
- 10. Buscando una alternativa basada en disco al almacén de clave-valor de Redis
- 11. ¿Puedo vincular formularios a un almacén de datos de Dojo?
- 12. Almacén de datos incrustado no relacional (nosql)
- 13. ¿Cómo coloco un diccionario en el almacén de datos?
- 14. ¿Creando un archivo .sqlite desde el almacén de datos centrales?
- 15. La mejor manera de administrar datos redis
- 16. Qué es un almacén de datos de código abierto para barex M3 sin OS
- 17. Atomic GETSET en un hash en Redis
- 18. ElasticSearch, almacén de datos para usuarios y datos sociales?
- 19. ¿Redis es estable en Windows?
- 20. ¿Es esto correcto? ¿Un error jQuery que borra el almacén de datos?
- 21. ¿Es posible administrar usuarios/identidades en un almacén de datos que muestre consistencia eventual?
- 22. Redis vs MySQL para datos financieros?
- 23. Sincronizando datos del servidor MongoDB a un almacén local IndexedDB
- 24. Enfoques para almacenar datos geoespaciales en Redis
- 25. ¿Por qué Redis tiene capacidades Pub/Sub?
- 26. Redis replication y redis sharding (clúster) diferencia
- 27. Cliente de almacén de datos de Cassandra en lenguaje Go
- 28. Almacén de datos de replicación alta de App Engine
- 29. ¿cómo se puede subir datos a granel a un almacén de datos appengine de google?
- 30. Múltiples instancias de Redis
No se puede tener las dos cosas. O bien algunos datos están en el limbo, o tiene que esperar a que se escriban todos los datos en el disco. –
Es exactamente por eso que estoy haciendo esta pregunta. – allyourcode