質問

私はaを開発しました Pythonクライアントライブラリ, 、これはWeb APIのクライアントラッパーです。優れたヘイブ機能はローカルキャッシュメカニズムです。これにより、ライブラリクライアントが異なる時間にWeb APIでまったく同じリクエストを呼び出すと、時間と帯域幅が節約されます。

要件はほとんどありません

  1. キャッシュは開発され(外部ライブラリなし)、Python 2.6/2.7 Envsを実行するものとします
  2. ライブラリは、外部キャッシュメカニズム(例:memcached)ラッパーを使用することができるように、均一なインターフェイスを提供するものとします。
  3. キャッシュはスレッドセーフである必要があります
  4. キャッシュされるコンテンツは、Web API応答のJSONペイロードです。
  5. Web APIによって提供されるデータは、ラットが異なる場合に異なります。たとえば、現在観察されている都市で観察されている天候は1時間ごとに異なる場合がありますが、15日間の天気予報は5日ごとに異なる場合があります。

使用できる最も単純なアルゴリズムは何ですか?

私はLRU(最近使用されていない)アルゴリズムについて考えていましたが、他の選択肢を評価できると思います - 私はキャッシュについてはまったく専門家ではありません!

役に立ちましたか?

解決

lru_cacheからソースをコピーして適応させることができます(参照 http://hg.python.org/cpython/file/default/lib/functools.py).

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top