显式清除django memcached flush/cache(),或删除特定的每视图缓存键

显式清除django memcached flush/cache(),或删除特定的每视图缓存键,django,caching,memcached,flush,Django,Caching,Memcached,Flush,我正在使用django的Memcached和带有@cache\u页面(超时)装饰器的每视图缓存机制 在特定的视图函数中,我希望清除整个缓存。 我尝试了cache.clear()和cache.\u cache.flush\u all()但两者似乎都没有刷新缓存 是否有其他方法可以做到这一点,还是我做错了 编辑: 我意识到完全清除缓存并不是一个好主意,而不仅仅是删除所需的密钥。但是,我不知道我用@cache\u页面(超时)修饰的视图的键,我如何知道这些?在我获得密钥后,我只需进行缓存。删除(密钥)

我正在使用django的Memcached和带有
@cache\u页面(超时)
装饰器的每视图缓存机制

在特定的视图函数中,我希望清除整个缓存。 我尝试了
cache.clear()
cache.\u cache.flush\u all()
但两者似乎都没有刷新缓存

是否有其他方法可以做到这一点,还是我做错了

编辑:
我意识到完全清除缓存并不是一个好主意,而不仅仅是删除所需的密钥。但是,我不知道我用@cache\u页面(超时)修饰的视图的键,我如何知道这些?在我获得密钥后,我只需进行缓存。删除(密钥)


谢谢

有比刷新整个缓存更好的方法。见:

当您更改使用缓存值的运行代码时,可能需要 清除任何现有的缓存值。最简单的方法是 刷新整个缓存,但这可能会导致缓存值丢失 这些仍然有效和有用

Django提供了一种更好的方法来定位单个缓存值。 Django的缓存框架有一个系统范围的版本标识符, 使用版本缓存设置指定。此设置的值 自动与缓存前缀和用户提供的组合 缓存密钥以获取最终缓存密钥


确实没有一个很好的理由来清除整个缓存。只需删除要刷新的键,不要弄乱其余部分。我不知道用@cache_page(超时)修饰的视图的键,我如何知道这些键?在我获得密钥后,我只需进行缓存。删除(密钥)?查看此相关问题: