Как я могу использовать Redis с Django? - PullRequest
90 голосов
/ 27 сентября 2010

Я слышал о redis-cache, но как именно он работает?Используется ли он как слой между django и моими rdbms, как-то кэшируя запросы rdbms?

Или он должен использоваться непосредственно в качестве базы данных?В чем я сомневаюсь, поскольку эта страница github не содержит никаких данных для входа в систему, никаких настроек ... просто говорит вам установить какое-либо свойство конфигурации.

Ответы [ 4 ]

68 голосов
/ 27 сентября 2010

Этот модуль Python для Redis имеет четкий пример использования в файле readme: http://github.com/andymccurdy/redis-py

Redis предназначен для кэш-памяти RAM. Он поддерживает основные GET и SET ключей, а также хранение коллекций, таких как словари. Вы можете кэшировать запросы СУБД, сохраняя их выходные данные в Redis. Цель состоит в том, чтобы ускорить ваш сайт Django. Не начинайте использовать Redis или любой другой кеш, пока вам не понадобится скорость - не оптимизируйте преждевременно.

59 голосов
/ 11 октября 2011

То, что Redis хранит вещи в памяти, не означает, что это кеш. Я видел людей, использующих его в качестве постоянного хранилища данных.

То, что его можно использовать в качестве кэша, является намеком на то, что он полезен в качестве высокопроизводительного хранилища. Если ваша система Redis выходит из строя, вы можете потерять данные, которые не были снова записаны на диск. Есть несколько способов смягчить такие опасности, например, горячая резервная копия. Если ваши данные «критически важны», например, если вы управляете банком или магазином, Redis может оказаться не лучшим выбором для вас. Но если вы пишете игру с большим трафиком с постоянными данными в реальном времени или какими-то социальными взаимодействиями и считаете, что вероятность потери данных вполне приемлема, тогда Redis может стоить посмотреть.

В любом случае, точка остается, да, Redis может использоваться как база данных.

21 голосов
/ 17 июля 2011

Redis - это, по сути, магазин памяти KV с множеством наворотов. Это очень гибкий. Вы можете использовать его как временное хранилище, например, кеш, или постоянное хранилище, как базу данных (с оговорками, упомянутыми в других ответах).

В сочетании с Django лучшим / наиболее распространенным вариантом использования Redis, вероятно, является кэширование «ответов» и сеансов.

Здесь есть бэкэнд https://github.com/sebleier/django-redis-cache/ и отличная документация в документации по Django здесь: https://docs.djangoproject.com/en/1.3/topics/cache/.

Я недавно начал использовать https://github.com/erussell/django-redis-status для мониторинга моего кеша - работает чудо. (Сконфигурируйте maxmemory на redis, или результаты не очень полезны).

4 голосов
/ 26 декабря 2016

Вы также можете использовать Redis как очередь для распределенных задач в приложении Django. Вы можете использовать его как брокер сообщений для Сельдерей или Python RQ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...