获取Django中的缓存键列表
我正在尝试理解Django是如何为我的视图设置键的。我想知道有没有办法获取Memcached中所有保存的键。比如说像一个cache.all()
这样的东西。我一直在用cache.has_key('test')
来查找某个键,但还是搞不清楚视图的键是怎么命名的。
更新:我需要这样做的原因是因为我想手动删除缓存中的某些部分,但不知道Django为我的cache_view键设置的键值是什么。
13 个回答
8
正如之前提到的,Django中没有办法获取所有缓存键的列表。如果你使用的是外部缓存(比如memcached或者数据库缓存),你可以直接查看这些外部缓存。
不过,如果你想知道如何将Django中的键转换成后端系统使用的键,可以使用Django的make_key()函数来实现。
https://docs.djangoproject.com/en/1.8/topics/cache/#cache-key-transformation
>>> from django.core.cache import caches
>>> caches['default'].make_key('test-key')
u':1:test-key'
37
对于RedisCache,你可以通过下面的方式获取所有可用的键。
from django.core.cache import cache
cache.keys('*')
2
你可以访问这个链接 http://www.darkcoding.net/software/memcached-list-all-keys/,里面有相关的说明,具体内容可以参考这个问题 如何用Python的memcached检查Django缓存的内容?