LoginJoin GenScrap

#cachetools

Related Tags

1 public scrap tagged with #cachetools

diskcache
manual

いい選択です 👍 `diskcache` は **ディスクにキャッシュを保存できるライブラリ** で、メモリを圧迫せずに大量のデータをキャッシュできます。しかも API がシンプルで、Webアプリや機械学習の前処理結果キャッシュなどにもよく使われます。 --- ## インストール ```bash pip install diskcache ``` --- ## 基本の使い方 ### キー・バリューのキャッシュ ```python import diskcache as dc cache = dc.Cache("./mycache") # 値を保存 cache["x"] = 42 # 値を取得 print(cache["x"]) # 42 # デフォルト値付き取得 print(cache.get("y", "default")) # default ``` --- ### 関数の結果をキャッシュ(デコレータ) ```python import time import diskcache as dc cache = dc.Cache("./mycache") @cache.memoize() def slow_function(x): time.sleep(2) return x * x print(slow_function(5)) # 初回は2秒かかる print(slow_function(5)) # 2回目はキャッシュから即時取得 ``` --- ### TTL(有効期限つきキャッシュ) ```python cache.set("key", "value", expire=10) # 10秒で消える print(cache.get("key")) # value ``` --- ### Webアプリ (Flask) での例 ```python from flask import Flask import diskcache as dc app = Flask(__name__) cache = dc.Cache("./flask_cache") @app.route("/square/<int:n>") @cache.memoize(expire=60) # 60秒キャッシュ def square(n): return str(n * n) if __name__ == "__main__": app.run(debug=True) ``` --- ## 特徴まとめ * **速い**(C実装が多い)。 * **永続化**:プロセスが終了してもキャッシュ残る。 * **柔軟**:TTL、サイズ制限、memoizeデコレータ対応。 * **スレッド/プロセス安全**なので並列処理にも強い。 --- 👉 `diskcache` をどんな用途で使いたいですか? (例:APIレスポンスのキャッシュ、データ前処理結果の保存、Webアプリの応答高速化など) それに合わせてベストプラクティスを提案できます。

9/18/2025View

Want to create your own tagged content?

Get Started