Django如何知道queryset是否被缓存?使用johnnycache

时间:2012-07-05 17:22:44

标签: python django caching memcached django-queryset

我刚发现johnnycache,它看起来很棒。我按顺序安装了它并在我的设置中添加了几行代码,就像文档中指示的那样。

CACHES = {
    'default': {
        'BACKEND': 'johnny.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:8000',
        'JOHNNY_CACHE': True,
    }
}
JOHNNY_MIDDLEWARE_KEY_PREFIX = 'jc_efl'

和中间件设置..

MIDDLEWARE_CLASSES = (
    'johnny.middleware.LocalStoreClearMiddleware',
    'johnny.middleware.QueryCacheMiddleware',
... }

我在浏览器中加载了我的网站,运行正常,加载时间没有明显差异。

我想知道如何知道我检索到的查询是否实际来自缓存。

我在Google和SO上查了很多关于视图/模板缓存的内容,他们使用评论时间戳方法来完成它。但我相信,这不适用于此。

请帮忙!

2 个答案:

答案 0 :(得分:1)

我只是在寻找同样的事情。我认为他们打算让你使用信号

johnny.cache.signals.qc_hit - 在缓存命中后触发

johnny.cache.signals.qc_miss - 在缓存未命中后触发

来自johnny cache docs

答案 1 :(得分:0)

您还可以使用Django Debug Toolbar(DDT)查看每个请求运行的查询。如果DDT显示正在运行的查询,则表示它们是缓存未命中。