【问题标题】:Django How to know if queryset is cached or not? using johnnycacheDjango 如何知道查询集是否被缓存?使用 johnnycache
【发布时间】:2012-07-06 03:42:29
【问题描述】:

我刚刚发现了 johnnycache,它看起来很棒。我 pip 安装了它,并将几行代码添加到我的设置中,就像文档说明的那样。

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,其中提到了很多关于视图/模板缓存的内容,他们使用注释时间戳方法来完成它。但我相信,这不适用于这里。

请帮忙!

【问题讨论】:

    标签: python django caching memcached django-queryset


    【解决方案1】:

    我只是在寻找同样的东西。我想他们打算让你使用信号

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

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

    来自johnny cache docs

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2011-01-22
        • 2012-02-17
        • 1970-01-01
        • 2015-10-14
        • 1970-01-01
        • 2019-10-11
        • 1970-01-01
        • 2019-02-22
        • 1970-01-01
        相关资源
        最近更新 更多