ビーカー /パイロンキャッシュの一般的なプレフィックスを使用していくつかのキーを無効にするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4836034

  •  27-10-2019
  •  | 
  •  

質問

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に関連付けられたすべてのキャッシュデータを無効にしたい場合、すべてのキャッシュデータを列挙して手動で無効にすることができますか?

役に立ちましたか?

解決

単一のキーを無効にすることは簡単です:

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

質問のタイトルが示すように、無効にする必要があるキーの束全体がある場合は、個別のキャッシュに入れてからキャッシュ全体をクリアすることをお勧めします。

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

どのキャッシュに何が入るかを慎重に計画する必要があります。

  • あなたは何百万もの小さなキャッシュで終わることはありません
  • キャッシュを拭くとき、あなたはまだ新鮮なデータを捨てることはありません
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top