首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django Memcached -如何检查是否使用了memcached?

Django Memcached -如何检查是否使用了memcached?
EN

Stack Overflow用户
提问于 2011-10-13 15:39:09
回答 1查看 1.8K关注 0票数 1

我决定使用Memcached来加速我的Django应用程序,但我不确定它是否真的有效,即使我没有看到任何错误消息。当然,我在谷歌上搜索了一下答案,但什么也没帮上忙...

我的主要问题是“如何检查是否使用了Memcached?”

这就是我所拥有的:

带有PostgreSQL的Django 1.3。Memcached server for windows (1.4.5) Memcached client: python-memcached (最新,我想是1.4.7)

我用以下参数配置了中间件:

代码语言:javascript
复制
MIDDLEWARE_CLASSES = (
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',)

而缓存中包含:

代码语言:javascript
复制
CACHES = {
'default': {
    'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION': '127.0.0.1:11211',
} }

然后我启动memcached.exe。我可以用命令“telnet localhost 11211”访问它。

所以一切看起来都很正常:当我运行“stats”命令时,我可以看到memcached可以看到“GET”请求。

但是当我检索数据时:

代码语言:javascript
复制
Object.objects.get(ObjectId=1)

我可以看到,表“pg_stat_activity”在每次请求时都会发生变化。因此,我猜测查询被重定向到数据库,而不是…

另一个测试:我尝试使用命令行向表中添加一个条目。根据我对Memcached的理解,条目不应该添加到真正的数据库中,而应该只添加到缓存中,对吗?事实上,当我添加一个条目时,它会被添加到数据库…中

有人知道如何检查Memcached是否真的被使用了吗?

提前谢谢你,S。

EN

回答 1

Stack Overflow用户

发布于 2011-10-13 16:41:42

为什么您会认为该命令会使用缓存?它用于从数据库中获取数据,所以这就是它的作用。Django没有尝试使用缓存而不是数据库,这会很奇怪。

缓存db查找的正确方法是向缓存请求项,如果项不在缓存中,则从db获取并缓存它:

代码语言:javascript
复制
object = cache.get(key)
if not object:
    object = Object.objects.get(id=key)
    cache.set(key, object, timeout)
return object
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7750892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档