2013-05-05 41 views
1

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

回答

3

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

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

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

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

+0

@Rabin如果有帮助,请接受答案。谢谢 – 2013-05-05 17:43:08

+0

工程就像一个魅力。谢谢 – Rabin 2013-05-06 03:01:38