我似乎无法找到memcached似乎具有某种范围的任何实例,但这就是我现在似乎正在发生的事情。
在我的views.py
中,每次页面加载时,我都会在memcached自动增量中存储一个值。我知道这是有效的,因为在大约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,然后再次运行它,同样会发生同样的事情:最值得注意的是,获取my_new_key
仍会返回None
。我无法看到my_incr_key
中存储的值向我显示存在范围问题。
这让我绝对疯狂!
是否存在memcached
的范围?那是什么在这里发挥作用?我该如何解决这个范围'问题
如果可能的话,我想只使用memcached而不必处理任何文件。
修改
这是我添加到settings.py
的内容:
CACHES = {
'default': {
'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache',
'LOCATION': '127.0.0.1:11211',
}
}
当我从cache
导入django.core.cache
时,如何指出这是我要使用的缓存?