如何测试我的redis缓存是否正常工作?

时间:2011-10-06 01:29:11

标签: django caching redis

我已经安装了django-redis-cache和redis-py。我已经关注了Django的缓存文档。据我所知,以下设置是我所需要的。但是如何判断它是否正常工作?

settings.py

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

3 个答案:

答案 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

关于您的代码,有一些要素。