1

我正在缓存选择查询和内存缓存中的值。我只使用简单的单表查询。我厌倦了使用查询本身作为键,但由于特殊字符和其他各种原因真的不能。无论如何,是否可以从查询中生成一个没有任何冲突的唯一键并将其用作内存缓存的键。

4

1 回答 1

4

我们通过散列查询来创建缓存键。似乎效果很好。

如果您直接尝试使用查询作为键,它将不起作用,因为它可能包含特殊字符。所以我们可以使用散列算法对查询进行散列,并将结果用作键。这对于每个不同的查询都是唯一的。

import hashlib
query = "" #your query here
cache_key = str(int(hashlib.md5(query.lower()).hexdigest(), 16))

注意:调用 .lower() 方法是为了将不同情况的查询视为相同。

于 2013-05-05T05:31:34.927 回答