从查询中生成Memcache密钥

时间:2013-05-05 04:54:47

标签: python memcached

我正在缓存select查询和memcache中的值。我只使用简单的单表查询。我厌倦了使用查询本身作为关键,但真的不能因为特殊字符和其他各种原因。无论如何,无需任何碰撞就可以将查询中的密钥生成到唯一密钥,并将其用作内存缓存的密钥。

1 个答案:

答案 0 :(得分:3)

我们通过散列查询来创建缓存键。似乎工作得很好。

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

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

注意:正在调用.lower()方法,以便将不同情况下的查询视为相同。