He oído hablar de redis-cache, pero ¿cómo funciona exactamente? ¿Se usa como una capa entre django y mis rdbms, almacenando en caché las consultas de rdbms de alguna manera?
¿O se supone que debe usarse directamente como base de datos? Lo cual dudo, ya que esa página de github no cubre ningún detalle de inicio de sesión, no hay configuración ... solo te dice que establezcas alguna propiedad de configuración.
El hecho de que Redis almacene cosas en la memoria no significa que esté destinado a ser un caché. He visto a personas que lo utilizan como un almacén persistente de datos.
El hecho de que se pueda usar como caché es una pista de que es útil como almacenamiento de alto rendimiento. Si su sistema Redis deja de funcionar, es posible que pierda datos que no se hayan vuelto a escribir en el disco. Hay algunas formas de mitigar estos peligros, por ejemplo, una réplica en espera. Si sus datos son 'de misión crítica', como si administra un banco o una tienda, Redis podría no ser la mejor opción para usted. Pero si escribe un juego de alto tráfico con datos en vivo persistentes o algunas cosas de interacción social y administra la probabilidad de pérdida de datos para que sea bastante aceptable, entonces Redis puede valer la pena echarle un vistazo.
De todos modos, el punto sigue siendo, sí, Redis se puede usar como base de datos.
fuente
Redis es básicamente una tienda KV 'en memoria' con un montón de campanas y silbidos. Es extremadamente flexible. Puede usarlo como un almacén temporal, como un caché, o un almacén permanente, como una base de datos (con advertencias como se menciona en otras respuestas).
Cuando se combina con Django, el mejor / más común caso de uso de Redis es probablemente almacenar en caché las 'respuestas' y las sesiones.
Hay un backend aquí https://github.com/sebleier/django-redis-cache/ y una excelente documentación en los documentos de Django aquí: https://docs.djangoproject.com/en/1.3/topics/cache/ .
Recientemente comencé a usar https://github.com/erussell/django-redis-status para monitorear mi caché, funciona de maravilla. (Configure maxmemory en redis o los resultados no serán tan útiles).
fuente
También puede usar Redis como una cola para tareas distribuidas en su aplicación Django. Puede usarlo como agente de mensajes para Celery o Python RQ .
fuente
Redis como base de datos primaria
Sí, puede utilizar el almacén de valores-clave de Redis como base de datos principal. Redis no solo almacena pares clave-valor, sino que también admite diferentes estructuras de datos como
Tipos de datos de Redis Documento oficial
Redis está en el almacén de valores clave de la memoria, por lo que debe saberlo si se produce una falla en el servidor Redis, sus datos se perderán.
Redis también puede conservar el documento oficial de verificación de datos.
Documento oficial de Redis Persistence
Redis como caché
Sí, Redis reside entre Django y RDBMS.
Cómo funciona
Documento oficial del marco de caché de Django
¿Cómo se puede utilizar Redis con Django?
Podemos usar el cliente redis python redis-py para la aplicación Django.
Cliente de redis python redis-py Github
Podemos usar Django-redis para el backend de caché de django.
Django-redis se basa en redis-py y agregó características adicionales relacionadas con la aplicación django.
Django-redis doc Github
También existen otras bibliotecas.
Casos de uso y tipos de datos de Redis
Algunos casos de uso
Principales casos de uso de Redis por tipos de estructura de datos principales
Grandes empresas de tecnología que utilizan Redis
fuente