Python Memcached未超出作用域(?)
我似乎找不到任何memcached的实例似乎有某种作用域,但这就是我现在所经历的 在myPython Memcached未超出作用域(?),python,django,caching,scope,memcached,Python,Django,Caching,Scope,Memcached,我似乎找不到任何memcached的实例似乎有某种作用域,但这就是我现在所经历的 在myviews.py中,每次加载页面时,我都会在memcached auto increment中存储一个值。我知道这是有效的,因为在大约30次重新加载后,大约是30次 但是,例如,如果我尝试从python manage.py shell访问此变量,则存储在其中的值不起作用。此外,我存储在该shell中的任何值只有在该shell运行时才会持久 下面是我在shell中所做的: from django.conf im
views.py
中,每次加载页面时,我都会在memcached auto increment中存储一个值。我知道这是有效的,因为在大约30次重新加载后,大约是30次
但是,例如,如果我尝试从python manage.py shell
访问此变量,则存储在其中的值不起作用。此外,我存储在该shell中的任何值只有在该shell运行时才会持久
下面是我在shell中所做的:
from django.conf import settings
from django.core.cache import cache
> cache.get('my_incr_key') # This auto-increments in views.py
None
> cache.get('my_new_key')
None
> cache.set('my_new_key', 12, None)
> cache.get('my_new_key')
12
问题是,如果我退出shell,然后再次运行,同样的事情也会发生:最值得注意的是,获取mynew\u key
仍将返回None
。我看不到存储在my\u incr\u key
中的值,这表明存在范围问题
这简直快把我逼疯了
是否存在memcached
的作用域?这就是我们要做的吗?如何解决此“范围”问题
如果可能的话,我只想使用memcached,而不必处理任何文件
编辑
这是我添加到settings.py中的内容:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
当我从django.core.cache
导入cache
时,如何指示这是我要使用的缓存?您确定没有使用本地内存缓存吗?你能显示你设置的缓存部分吗?@IainShelvington,奇怪的是,在我的settings.py
中根本没有包含“CACH”的内容,但是缓存似乎对视图有效。py
你需要在你的设置中指定memcached-。默认缓存设置使用仅存在于正在运行的进程中的本地内存缓存。您可以通过重新启动服务器来测试这一点。如果您运行的是本地内存cachingMemcached,那么您的缓存将被“重置”。cachingMemcached与Django完全分离,并且不使用Apache或dev服务器。它是自己的服务器,根据自己的配置运行。您确定没有使用本地内存缓存吗?你能显示你设置的缓存部分吗?@IainShelvington,奇怪的是,在我的settings.py
中根本没有包含“CACH”的内容,但是缓存似乎对视图有效。py
你需要在你的设置中指定memcached-。默认缓存设置使用仅存在于正在运行的进程中的本地内存缓存。您可以通过重新启动服务器来测试这一点。如果您运行的是本地内存cachingMemcached,那么您的缓存将被“重置”。cachingMemcached与Django完全分离,并且不使用Apache或dev服务器。它是自己的服务器,根据自己的配置运行。