2013-05-05 59 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