Comment utiliser redis avec Django?

j'ai entendu parler de redis-cache, mais exactement comment ça marche? Est-il utilisé comme couche entre django et mes rdbms, en cachant les requêtes rdbms d'une façon ou d'une autre?

ou est-il supposé être utilisé directement comme base de données? Ce dont je doute, vu que cette page github ne couvre aucun détail de connexion, Pas de configuration.. il vous dit juste de configurer une propriété de configuration.

87
demandé sur Ali Dehghani 2010-09-27 09:48:42

4 réponses

ce module Python pour Redis a un exemple d'usage clair dans le readme: http://github.com/andymccurdy/redis-py

Redis est conçu pour être un cache RAM. Il soutient L'GET de base et L'ensemble des clés plus le stockage des collections telles que les dictionnaires. Vous pouvez mettre en cache les requêtes RDBMS en stockant leur sortie dans Redis. Le but serait d'accélérer votre site Django. Ne commencez pas à utiliser Redis ou tout autre cache jusqu'à ce que vous ayez besoin de la vitesse - ne le faites pas prématurément optimiser.

66
répondu Spike Gronim 2011-07-15 20:30:58

ce n'est pas parce que Redis stocke des choses en mémoire qu'il est censé être un cache. J'ai vu des gens l'utiliser comme un système de persistance de données.

Qu'il puisse être utilisé comme cache est une indication qu'il est utile comme un stockage de haute performance. Si votre système Redis tombe en panne, vous pourriez perdre des données qui n'ont pas été réécrites sur le disque. Il existe des moyens d'atténuer ces dangers, par exemple une réplique de secours à chaud. Si vos données sont mission-critique", 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 jeu à fort trafic avec des données en direct persistantes ou certains trucs d'interaction sociale et de gérer la probabilité de perte de données pour être tout à fait acceptable, alors Redis pourrait être utile un coup d'oeil.

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

58
répondu Stefan Schubert-Peters 2011-10-11 06:40:02

Redis est essentiellement un magasin KV' in memory ' avec des charges 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/cas d'utilisation le plus courant pour Redis est probablement de mettre en cache les 'réponses' et les sessions.

il y a un backend ici https://github.com/sebleier/django-redis-cache / et une excellente documentation dans les docs Django ici: https://docs.djangoproject.com/en/1.3/topics/cache / .

j'ai récemment commencé à utiliser https://github.com/erussell/django-redis-status pour surveiller ma cache-fonctionne un charme. (Configurer maxmemory sur redis ou les résultats ne sont pas très utiles).

19
répondu ostergaard 2018-09-28 15:31:11

vous pouvez également utiliser Redis comme file d'attente pour les tâches distribuées dans votre application Django. Vous pouvez l'utiliser comme courtier de messages pour Celery ou Python RQ .

4
répondu Dmitrii Mikhailov 2016-12-26 13:54:11