Django-Cache测试

时间:2013-08-01 17:09:56

标签: django django-cache django-caching

由于我是django-cache的新手,我试图在Django中缓存特定的视图。 我不确定数据是从缓存还是从数据库中获取的。 我该如何验证?作为一个新手,请检查我是否正确缓存了视图?

Views.py

@cache_page(900)
def dashboard(request):

    __something__

Settings.py

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
        'LOCATION': '127.0.0.1:11211',
    }
}
CACHE_MIDDLEWARE_ALIAS = 'default'
CACHE_MIDDLEWARE_SECONDS = 600

2 个答案:

答案 0 :(得分:1)

如果它不是一个视图,我建议这样做:用manage.py shell打开一个交互式shell,然后执行:

from django.db import connection
# execute your functions
print connection.queries

执行它们时,此列表将填充SQL查询。

但由于这是一个观点,我建议你使用django-debug-toolbar。除了其他有用的东西,它还会显示处理请求时执行的查询。

答案 1 :(得分:0)

你正确地做到了。您编写的代码是Memcached Cache而不是数据库缓存。因此,缓存数据存储在服务器的RAM中,而不是存储在数据库中。通常这是最快的缓存技术,但如果您的服务器没有足够的内存,这可能会导致服务器崩溃,并且所有缓存的数据都将丢失。

对于数据库缓存,应按如下所示配置缓存设置,然后将缓存存储为数据库表。这里my_cache_table是表名。

CACHES = {
    'default': {
        'BACKEND': 'django.core.cache.backends.db.DatabaseCache',
        'LOCATION': 'my_cache_table',
    }
}

阅读Django cache documentation,它有非常有用的信息。