Джанго-кеш-машина и 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, чтобы сообщить, что вы нажали или пропустили кеш.

Другие вопросы по тегам