django-cache-machine and Redis



我试图使用django-cache-machine来缓存我的应用程序中的查询,但我想使用Redis作为后端。文档并没有真正解释如何做到这一点,但存储库中充满了Redis引用,所以我很确定这是可能的。我想确保我做得对,所以我想知道是否有人有任何配置这个的经验,也许更重要的是,知道是否有任何警告?

设置:

CACHE_MACHINE_USE_REDIS = True

REDIS_BACKEND = redis://127.0.0.1:6379?

https://github.com/jbalogh/django-cache-machine/blob/master/caching/invalidation.py L187https://github.com/jbalogh/django-cache-machine/blob/master/caching/invalidation.py L213

我在我的项目中有一点经验,一个从大约5000万条记录生成表的报表系统。

数据库是Mysql,我可以显示我的设置和模型供参考。

设置:

    # 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='')

注意 cache-machine对于query_set工作得很好。filtercount,不适用于query_set。annotateaggregate。当然,不要忘记首先启动memcache客户端。

当运行时,你可以在django*.log中看到cache-machine的日志,告诉你是否命中缓存。

最新更新