假设我有以下片段使用search_term来缓存函数加载,大概是限制为键。(在烧杯中它被转换为我想的所有参数的元组的字符串表示)
# Assuming a cache object is available like:
cache = CacheManager(dict_of_config_options)
def populate_things():
@cache.cache('mycache', expire=15)
def load(search_term, limit, offset):
return load_the_data(search_term, limit, offset)
return load('rabbits', 20, 0)
现在,如果我插入数据库并想要使与新更新的search_term相关联的所有缓存数据无效,我如何枚举所有缓存数据,以便我可以手动使它们失效?
答案 0 :(得分:3)
使单个密钥无效是直截了当的:
cache.get_cache("mycache").remove_value(key="rabbits")
如果你的问题的标题是,那么需要失效的一大堆密钥,我建议将它们放在单独的缓存中,然后清除整个缓存:
cache.get_cache("all_my_rabbit_stuff").clear()
您需要仔细规划哪些缓存中的内容