使用Memcached和python-memcache进行缓存
我把它们都安装了,但每次我想获取某个键的时候,结果都是None。
>>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 个回答
1
你确定memcached真的在运行吗?而且它的设置是监听127.0.0.1的1991端口吗?默认情况下,memcached是监听11211端口的。
django.core.cache.cache
在memcache
无法存储数据时表现得很无辜,它不会抛出错误或者返回任何提示。
你可以用下面的方法更直接地测试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"