Já ouvi falar de redis-cache, mas como funciona exatamente? É usado como uma camada entre o django e o meu rdbms, armazenando em cache as consultas do rdbms de alguma forma?
Ou deve ser usado diretamente como banco de dados? O que eu duvido, já que a página do github não cobre nenhum detalhe de login, nenhuma configuração .. apenas diz para você definir alguma propriedade de configuração.
Só porque o Redis armazena coisas na memória não significa que ele foi feito para ser um cache. Já vi pessoas usando-o como um armazenamento persistente de dados.
O fato de poder ser usado como cache é uma indicação de que é útil como armazenamento de alto desempenho. Se o seu sistema Redis falhar, você poderá perder dados que não foram gravados de volta no disco. Existem algumas maneiras de mitigar esses perigos, por exemplo, uma réplica hot-standby. Se seus dados são de 'missão crítica', como se você dirige um banco ou uma loja, o Redis pode não ser a melhor escolha para você. Mas se você escrever um jogo de alto tráfego com dados persistentes ao vivo ou alguma coisa de interação social e gerenciar a probabilidade de perda de dados para ser bastante aceitável, então vale a pena dar uma olhada no Redis.
De qualquer forma, a questão permanece, sim, o Redis pode ser usado como um banco de dados.
fonte
Redis é basicamente uma loja KV 'na memória' com muitos sinos e apitos. É extremamente flexível. Você pode usá-lo como um armazenamento temporário, como um cache, ou um armazenamento permanente, como um banco de dados (com ressalvas conforme mencionado em outras respostas).
Quando combinado com Django, o caso de uso melhor / mais comum para o Redis é provavelmente para armazenar em cache 'respostas' e sessões.
Há um back-end aqui https://github.com/sebleier/django-redis-cache/ e excelente documentação nos documentos do Django aqui: https://docs.djangoproject.com/en/1.3/topics/cache/ .
Recentemente comecei a usar https://github.com/erussell/django-redis-status para monitorar meu cache - funciona muito bem. (Configure maxmemory no redis ou os resultados não serão muito úteis).
fonte
Você também pode usar o Redis como uma fila para tarefas distribuídas em seu aplicativo Django. Você pode usá-lo como um corretor de mensagens para Celery ou Python RQ .
fonte
Redis como banco de dados primário
Sim, você pode usar o armazenamento de valores-chave do Redis como banco de dados primário. O Redis não apenas armazena pares de valores-chave, mas também suporta diferentes estruturas de dados, como
Tipos de dados Redis Documento oficial
O Redis está no armazenamento de valores-chave da memória, portanto, você deve estar ciente disso se ocorrer uma falha no servidor Redis, seus dados serão perdidos.
O Redis também pode persistir na verificação de dados oficiais.
Redis Persistence Official doc
Redis como um cache
Sim, o Redis reside no Django e no RDBMS.
Como funciona
Documento oficial do framework de cache do Django
Como posso usar Redis com Django
Podemos usar o cliente redis python redis-py para o aplicativo Django.
Cliente Redis python redis-py Github
Podemos usar Django-redis para backend de cache django.
Django-redis construído em redis-py e adiciona recursos extras relacionados ao aplicativo django.
Django-redis doc Github
Outras bibliotecas também existem.
Casos de uso e tipos de dados do Redis
Alguns casos de uso
Principais casos de uso do Redis por tipos de estrutura de dados principais
Grandes empresas de tecnologia usando Redis
fonte