使用Memcached和python-memcache进行缓存

时间:2014-09-09 11:28:38

标签: python django caching

我安装了它们,但是每当我尝试获得一些关键时,我都会得到一个

>>from django.core.cache import cache #no errors
>>cache.set('value1','value2',39) #no errors
>>cache.get('value1') #no errors but no value either
在settings.py中的

我得到了

CACHES = {
'default':{
    'BACKEND':'django.core.cache.backends.memcached.MemcachedCache',
    'LOCATION':'127.0.0.1:1991',
    'TIMEOUT': 1200,
    }
}

出了什么问题?我甚至没有想到要调试什么或从哪里开始...

1 个答案:

答案 0 :(得分:1)

你确定memcached实际上正在运行,它是否配置为侦听127.0.0.1端口1991?默认情况下,memcached侦听端口11211。

django.core.cache.cache无法存储密钥时,

memcache会显得愚蠢,它不会引发异常或返回任何错误。

您可以使用以下内容直接测试内存:

import memcache

for port in (1991, 11211):
    print "Testing memcached on port %d" % port
    mc = memcache.Client(['127.0.0.1:%d' % port])

    if mc.set('value1', 'value2'):
        print "stored key value pair"
        if mc.get('value1') == 'value2':
            print "successfully retrieved value"
            break
        else:
            print "Failed to retrieve value"
    else:
        print "Failed to store key value pair"