2012-10-15 127 views
2

我們使用Redis進行鍵值普通緩存和縮略圖緩存。在具有100多個站點Redis的略圖的數據庫有50萬個按鍵,無需像獨特的前綴的機器:Redis密鑰匹配性能

"sorl-thumbnail||image||6c4a67b016c4f867b9fdd3e5c5609887" 
"sorl-thumbnail||image||ad7c56bd5461e9061604867d056b5de8" 
"sorl-thumbnail||image||655ad6bb21129326ef4618df83a0f1f7" 
"sorl-thumbnail||thumbnails||871641bfefa6250518fe52b86cf742c9" 
"sorl-thumbnail||thumbnails||570565770557013bada8c1fe2cb3d658" 
"sorl-thumbnail||image||c01134f4a8746d24c6d62543419bbb3a" 
"sorl-thumbnail||image||ecc5afb281bc78fefe3046e2cc3f972a" 
"sorl-thumbnail||image||670f1f1b6c5660f46053a484e22a4071" 

是否使用前綴像001,002,003,...... 100網站IDS增加訪問Redis的性能?

+0

號爲什麼會這樣? – Mahn

+1

那麼,如果你使用每個站點的散列而不是單個的密鑰來存儲它們的縮略圖,它可能會更有效率,但除此之外,只要你知道密鑰名稱,我們仍然在談論O(1)次複雜性(除非你使用KEYS,我希望你不這樣做) – Mahn

+0

你好,我使用get和設置字符串如: GET「sorl-thumbnail || image || 670f1f1b6c5660f46053a484e22a4071」 – yet

回答

3

因爲主字典的數據結構是散列表而不是樹,所以如果您有大量具有共同前綴的密鑰,Redis的一般性能不會受到影響。

使用某些區分數據爲您的密鑰添加前綴不會真正提高性能。