Джанго-кеш-машина и Redis
Я пытаюсь использовать django-cache-machine для кеширования запросов в моем приложении, но я хочу использовать Redis в качестве бэкэнда. Документы на самом деле не объясняют, как это сделать, но хранилище заполнено ссылками на Redis, так что я уверен, что это возможно. Я хочу убедиться, что я все делаю правильно, поэтому мне интересно, есть ли у кого-нибудь опыт в настройке этого и, что еще важнее, знает, есть ли какие-либо предостережения?
2 ответа
В ваших настройках установлено:
CACHE_MACHINE_USE_REDIS = True
REDIS_BACKEND = redis: //127.0.0.1: 6379? Socket_timeout = 0.1
https://github.com/jbalogh/django-cache-machine/blob/master/caching/invalidation.py https://github.com/jbalogh/django-cache-machine/blob/master/caching/invalidation.py
У меня небольшой опыт в моем проекте - системе отчетов, которая генерирует таблицы из примерно 50 миллионов записей.
База данных Mysql, и я мог бы показать мои настройки и модели FYI.
настройки:
# cache machine
CACHES = {
'default': {
'BACKEND': 'caching.backends.memcached.MemcachedCache',
'LOCATION': [
'127.0.0.1:11211',
],
'PREFIX': 'report:',
},
}
CACHE_COUNT_TIMEOUT = 60 * 24 # one day
CACHE_EMPTY_QUERYSETS = True
модели:
class App(**CachingMixin**, models.Model):
**objects = CachingManager()**
name = models.CharField(max_length=64,
default='')
Обратите внимание, что кеш-машина отлично работает для query_set.фильтровать и считать, не подходит для query_set.аннотировать или объединять. Конечно, не забудьте сначала запустить клиент memcache.
А во время работы вы можете увидеть журналы машины кеша в вашем django*.log, чтобы сообщить, что вы нажали или пропустили кеш.