django-cache-machine和Redis

时间:2013-03-29 14:29:47

标签: django django-cache django-cache-machine

我正在尝试使用django-cache-machine在我的应用程序中缓存查询,但我想将Redis用作后端。 The docs并没有真正解释如何执行此操作,但the repository填充了Redis引用,所以我很确定它是可行的。我想确保我做得对,所以我想知道是否有人有配置这个的经验,更重要的是,知道是否有任何警告?

2 个答案:

答案 0 :(得分:3)

在您的设置中:

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#L187 https://github.com/jbalogh/django-cache-machine/blob/master/caching/invalidation.py#L213

答案 1 :(得分:-1)

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

数据库是 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。 annotate 聚合。当然不要忘记首先启动你的memcache客户端。

运行时,你可以在你的django * .log中看到缓存机日志,告诉你命中或错过缓存。