関数の結果をキャッシュするためのキャッシュ キーを生成するメソッドを作成しています。キーは、関数名とパラメーターのハッシュ値の組み合わせに基づいています。
現在、hashlib を使用してシリアル化されたバージョンのパラメーターをハッシュしていますが、大きなオブジェクトをシリアル化するには操作に非常にコストがかかるため、代替手段は何ですか?
#get the cache key for storage
def cache_get_key(*args):
import hashlib
serialise = []
for arg in args:
serialise.append(str(arg))
key = hashlib.md5("".join(serialise)).hexdigest()
return key
更新: hash(str(args)) を使用してみましたが、args に比較的大きなデータが含まれている場合でも、ハッシュ値の計算に時間がかかります。それを行うより良い方法はありますか?
実際、大きなデータを持つ str(args) は永遠にかかります...