Как использовать redis с Django?

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

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

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

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