2011-01-29 24 views
0

假設我有下面的代碼片段使用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關聯的所有緩存數據失效,我如何枚舉所有緩存的數據以便我可以手動使其失效?

回答

3

無效單個鍵是直接的:

cache.get_cache("mycache").remove_value(key="rabbits") 

如果有,你的問題的標題所說,需要無效鍵的一大堆,我建議把它們放在不同的緩存和然後清除所有緩存:

cache.get_cache("all_my_rabbit_stuff").clear() 

你需要仔細的規劃發生的事情,其中​​的緩存,這樣

  • 你不與百萬計的小高速緩存的最終
  • 消滅緩存的時候,你不要扔掉一些仍然新鮮的數據量太大