Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:进程之间无法访问缓存项?_Django_Caching - Fatal编程技术网

Django:进程之间无法访问缓存项?

Django:进程之间无法访问缓存项?,django,caching,Django,Caching,我在使用django缓存时遇到问题。看起来缓存的项不是 进程之间的可读性。这是故意的吗?我没有找到任何关于它的信息 在生产服务器上并行使用两个ssh会话进行测试, 并使用 memcache后端(也使用基于文件的后端进行了测试),结果如下: (第1次会议): (第2次会议): 我使用低级缓存api来缓存 上传的文件。然后,用户完成更多描述 在数据库中输入的上载数据。这已经完成了 异步使用apache2,每个进程一个线程,mod_wsgi和 python 2.5。我遇到的问题是,“cache.get

我在使用django缓存时遇到问题。看起来缓存的项不是 进程之间的可读性。这是故意的吗?我没有找到任何关于它的信息

在生产服务器上并行使用两个ssh会话进行测试, 并使用 memcache后端(也使用基于文件的后端进行了测试),结果如下:

(第1次会议):

(第2次会议):

我使用低级缓存api来缓存 上传的文件。然后,用户完成更多描述 在数据库中输入的上载数据。这已经完成了 异步使用apache2,每个进程一个线程,mod_wsgi和 python 2.5。我遇到的问题是,
“cache.get(“”)”
当我测试和上传文件时,总是返回None


感谢

Django的缓存系统是几个不同缓存后端的抽象层。尽管它允许您使用相同的API与它们进行交互,但它们的行为将因您配置的API而异。有关详细信息,请参阅


您可以使用settings.py文件中的CACHE_backend设置配置要使用的后端。如果您不设置该设置,那么您将得到一个简单的进程内缓存,这将解释为什么您无法访问在其他进程中设置的缓存值。我建议您查看并使用您的后端。它速度非常快,可扩展性非常强,而且配置也非常简单。

不,这不是设计上的问题,您的示例应该可以使用。请检查您是否正确指定了缓存后端,并且“foo”存储在memcached中。这应该由
cache.get
在与
cache.set
相同的会话中进行验证,除非中间隐藏了另一个缓存层。您解决了这个问题吗?导入
django.core.cache
时会自动加载django设置模块(如果
django\u设置\u模块
env.var设置不正确,则不会导入),如果你读了我的问题,我会说我测试了memcached和基于文件的后端。在这种情况下,听起来像是缓存配置的问题。
>>> from django.core.cache import cache
>>> cache.set('foo','bar')
>>> cache.get('foo')
'bar'
>>> 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