【发布时间】:2012-08-10 05:32:02
【问题描述】:
使用 Django 和 Memcached,我有一系列我想使缓存失效的缓存。我一直将它们全部保存为唯一的版本号,以便使它们无效。但是,按照 Django 站点的指示,我得到了一个 ValueError。
我的版本号看起来像:20991791。一般来说是整数。
如何使版本 20991791 中的所有 memcache 键失效?
仅供参考,设置如下:
>>> cache.set('laugh',2,version=3)
只知道版本号“3”,我需要删除版本号 3 中的所有键。我以为 incr_version 是这样做的,但是当我尝试时,它给出了 valueerror。
>>> cache.incr_version(3)
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/opt/virtual-envs/govini-web/lib/python2.6/site-packages/django/core/cache/backends/base.py", line 214, in incr_version
raise ValueError("Key '%s' not found" % key)
ValueError: Key '3' not found
【问题讨论】:
-
您可以使用
cache.delete('laugh', version=3)删除特定版本。cache.incr_version('laugh')只会自动更新版本,不会使任何以前的版本失效-afaik。另外,请注意它是一个键,而不是作为参数传递的版本号