我正在编写一种方法来生成缓存键以用于缓存函数结果,该键基于函数名称和参数哈希值的组合。
目前我正在使用 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) 需要永远......