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

Mat*_*lla 14 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'
            },
        },
    }
Run Code Online (Sandbox Code Playgroud)

...

    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 = ''
Run Code Online (Sandbox Code Playgroud)

Max*_*Max 47

还没有使用Django,但我的默认方法是检查某些组件是否在开发过程中实际写入redis:

首先,我刷新存储在redis中的所有密钥以删除旧的缓存条目(从不在生产中执行此操作,因为这会从redis中删除所有数据):

> redis-cli FLUSHALL
Run Code Online (Sandbox Code Playgroud)

然后在我的应用程序中激活缓存,看看redis的作用:

> redis-cli MONITOR
Run Code Online (Sandbox Code Playgroud)

您应该进入一个交互式会话,在其中您可以看到发送到redis的每个命令.

重新加载页面,在终端上,您应该看到一些存储缓存数据的SET*操作.

再次重新加载,如果缓存有效,您应该看到一些GET*操作检索缓存的数据.

注意:使用此方法,您可以检查是否实际使用了缓存.您无法看到的是您的缓存是否有助于加速您的应用程序.为此,您必须按照评论中的建议进行性能测试.


mar*_*ema 8

您可以安装django-debug-toolbar,并在启用缓存时查看查询数是否减少.虽然我不认为这是提出问题的最佳解决方案,但我仍然认为您想要这样做,因为您可以使用此设置轻松查明代价高昂的查询,然后为其添加适当的缓存.