3

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

视图.py

@cache_page(900)
def dashboard(request):

    __something__

设置.py

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

2 回答 2

3

如果它不是一个视图,我会推荐这个:打开一个交互式外壳manage.py shell,然后执行:

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

当您执行 SQL 查询时,该列表将填满它们。

但由于它是一个视图,我建议您使用django-debug-toolbar。除了其他有用的东西外,它还会向您显示在处理请求时执行的查询。

于 2013-08-01T17:22:23.463 回答
0

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

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

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

阅读Django 缓存文档,它有非常有用的信息。

于 2017-10-17T15:03:40.423 回答