【发布时间】:2025-11-21 16:00:01
【问题描述】:
我在使用 django 缓存时遇到问题。看起来缓存的项目不是 进程间可读。这是设计使然吗?我没有找到任何关于它的信息。
同时使用两个 ssh 会话在生产服务器上进行测试, 并使用 memcache 后端(也使用基于文件的后端进行了测试),结果如下:
(会话 1):
>>> from django.core.cache import cache
>>> cache.set('foo','bar')
>>> cache.get('foo')
'bar'
(第 2 节):
>>> from django.core.cache import cache
>>> cache.get('foo', 0) #Cache has not been set yet...
0
>>> cache.get('foo', 0) #Cache has been set in other session, I expect 'bar' here
0
我使用低级缓存api来缓存一个处理过的结果
上传的文件。用户然后完成一些描述
上传的数据,此时它被输入到数据库中。这个完成了
异步使用 apache2,每个进程一个线程,mod_wsgi 和
蟒蛇2.5。我遇到的问题是"cache.get('<filekey>')"
测试和上传文件时总是返回 None。
谢谢
【问题讨论】:
-
不,这不是设计使然,您的示例应该可以工作。请检查您是否正确指定了缓存后端,并且“foo”存储在 memcached 中。
-
嗯,这应该由
cache.get在与cache.set相同的会话中验证,除非中间隐藏了另一个缓存层。 -
这个问题你解决了吗?