107 votes

Comment puis-je utiliser redis avec Django?

J'ai entendu parler de redis-cache, mais exactement comment ça marche? Est-il utilisé comme une couche entre django et mon sgbdr, par la mise en cache du sgbdr requêtes en quelque sorte?

Ou est-il censé être utilisé directement comme la base de données? Ce dont je doute, depuis que github page ne couvre pas les informations de connexion, pas d'installation.. vous dit de mettre certaines config de la propriété.

76voto

Spike Gronim Points 4608

Ce module Python pour le Redis a clairement un exemple d'utilisation dans le readme: http://github.com/andymccurdy/redis-py

Redis est conçu pour être un cache RAM. Il prend en charge de base GET et SET de touches, plus le stockage de collections telles que des dictionnaires. Vous pouvez mettre en cache SGBDR requêtes en stockant leur sortie dans le Redis. Le but serait d'augmenter la vitesse de votre site Django. Ne pas commencer à utiliser Redis ou de tout autre cache jusqu'à ce que vous avez besoin de la vitesse - ne pas prématurément optimiser.

61voto

pvblivs Points 2785

Tout simplement parce que le Redis magasins de choses en mémoire ne signifie pas qu'il est destiné à être un cache. J'ai vu des gens l'utiliser comme un système de persistance de données.

Qu'il peut être utilisé comme un cache est une allusion au fait que c'est utile comme un stockage de haute performance. Si votre Redis système tombe en panne si vous risquez de perdre des données qui n'a pas été écrit sur le disque à nouveau. Il existe des moyens pour atténuer ces dangers, par exemple, un hot-standby réplique. Si vos données sont essentiels à la mission", comme si vous exécutez une banque ou un magasin, Redis pourrait ne pas être le meilleur choix pour vous. Mais si vous écrivez un haut jeu de trafic, avec la persistance des données en direct ou certains sociaux-interaction des trucs et gérer la probabilité de perte de données pour être tout à fait acceptable, alors Redis peut-être en valeur un regard.

De toute façon, le point reste, oui, Redis peut être utilisé comme une base de données.

24voto

ajostergaard Points 471

Redis est fondamentalement une "mémoire" KV magasin avec beaucoup de cloches et de sifflets. Il est extrêmement flexible. Vous pouvez l'utiliser comme un magasin temporaire, comme un cache, ou un magasin permanent, comme une base de données (avec des mises en garde comme mentionné dans d'autres réponses).

Lorsqu'il est combiné avec Django le meilleur/le plus commun de cas d'utilisation pour le Redis est probablement à cache "réponses".

Il y a un backend ici https://github.com/sebleier/django-redis-cache/ et d'une excellente documentation de Django docs ici: https://docs.djangoproject.com/en/1.3/topics/cache/ .

J'ai récemment commencé à utiliser https://github.com/erussell/django-redis-status pour suivre mon cache - fonctionne à merveille. (Configurer maxmemory sur le redis ou les résultats ne sont pas très utiles).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X