我正在尝试使用django-cache-machine在我的应用程序中缓存查询,但我想将Redis用作后端。 The docs并没有真正解释如何执行此操作,但the repository填充了Redis引用,所以我很确定它是可行的。我想确保我做得对,所以我想知道是否有人有配置这个的经验,更重要的是,知道是否有任何警告?
答案 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中看到缓存机日志,告诉你命中或错过缓存。