为什么memcache在我的Django中不起作用?

1 投票
2 回答
1435 浏览
提问于 2025-04-15 14:59
from django.core.cache import cache
    def testcache():
        cache.set('test','I am putting this message in',3333)
        print cache.get('test')

它只是打印了“None

这是在“ps aux”里的内容:

dovr      2241  0.0  0.8  57824  2144 ?        Ssl  04:20   0:00 memcached -d -u root -m 3900 -p 11211
dovr      2247  0.0  3.7  83696  9800 pts/2    S+   04:20   0:00 python manage.py runserver 0.0.0.0:8000

这是我在settings.py里的内容:

CACHE_BACKEND = 'memcached://MYIPADRESS:11211/'

顺便说一下,这之前是可以正常工作的,但现在不行了!我不知道为什么,真奇怪。

2 个回答

2

你可以通过记录 set() 方法返回的值来确保你的代码能成功连接到 memcached。可能是因为 memcached 监听的是 127.0.0.1,而你却在尝试连接外部接口。

0

解决了。

Django正在和服务器交流。我输入了“nc IPADRESS 11211”。然后我输入了“stats”。

接着,我发现cmd_get和cmd_set在变化,这说明它们在进行交流。

然后我意识到,我的视图代码有问题。键里面不能有“空格”。它必须是没有空格的(并且要经过编码)。

撰写回答