我已经安装了django-redis-cache和redis-py。我已经关注了Django的缓存文档。据我所知,以下设置是我所需要的。但是如何判断它是否正常工作?
CACHES = {
'default': {
'BACKEND': 'redis_cache.RedisCache',
'LOCATION': '<host>:<port>',
'OPTIONS': {
'DB': mydb,
'PASSWORD': 'mydbspasswd',
'PARSER_CLASS': 'redis.connection.HiredisParser'
},
},
}
...
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
...[the rest of my middleware]...
'django.middleware.cache.FetchFromCacheMiddleware',
)
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_SECONDS = (60 * 60)
CACHE_MIDDLEWARE_KEY_PREFIX = ''
答案 0 :(得分:45)
还没有使用Django,但我的默认方法是检查某些组件是否在开发过程中实际写入redis:
首先,我刷新存储在redis中的所有密钥以删除旧的缓存条目(从不在生产中执行此操作,因为这会从redis中删除所有数据):
> redis-cli FLUSHALL
然后在我的应用程序中激活缓存,看看redis的作用:
> redis-cli MONITOR
您应该进入一个交互式会话,在其中您可以看到发送到redis的每个命令。
重新加载您的页面,您应该看到一些存储缓存数据的SET *操作。
再次重新加载,如果您的缓存有效,您应该会看到一些GET *操作检索缓存数据。
注意:使用此方法,您可以检查是否实际使用了缓存。你看到的是你的缓存是否有助于加速你的应用程序。为此,您必须按照评论中的建议进行性能测试。
答案 1 :(得分:7)
您可以安装django-debug-toolbar并查看启用缓存时查询的数量是否减少。虽然我不认为这是提出问题的最佳解决方案,但我仍然认为你想要这样做,因为你可以使用这个设置轻松查明代价高昂的查询,然后为它们添加适当的缓存。
答案 2 :(得分:0)
Redis的使用一直专注于降低数据库的总体查询负载。
这个系统喜欢独立运作,没有任何冲突;)
如果您可以在以下位置查看其活动,我建议不要担心其操作,也不要更改其配置:
> redis-cli MONITOR
关于您的代码,有一些要素。