我正在缓存选择查询和内存缓存中的值。我只使用简单的单表查询。我厌倦了使用查询本身作为键,但由于特殊字符和其他各种原因真的不能。无论如何,是否可以在没有任何冲突的情况下从查询中生成一个唯一键的键,并将其用作内存缓存的键。
最佳答案
我们通过对查询进行哈希处理来创建缓存键。看起来效果不错。
如果您直接尝试使用查询作为键,它将无法工作,因为它可能包含特殊字符。所以我们可以使用哈希算法对查询进行哈希处理,并将结果用作键。这对于每个不同的查询都是唯一的。
import hashlib
query = "" #your query here
cache_key = str(int(hashlib.md5(query.lower()).hexdigest(), 16))
注意:调用 .lower() 方法是为了将不同情况下的查询视为相同。
关于python - 从查询中生成 Memcache 键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16381535/