當前位置:成語大全網 - 書法字典 - redis使用hashmap節省內存的誤區

redis使用hashmap節省內存的誤區

我見過很多redis優化的案例,通過引入hashmap把鍵散列到多個hashmap。

參見:

Redis使用哈希存儲節省內存-劉專欄-博客

我們得到下面的公式:

原來是:

密鑰1,密鑰2,密鑰3,密鑰4,密鑰5

成為

hash1:

key1:value1

關鍵字2:值2

關鍵字3:值2

哈希2:

關鍵4:價值4

關鍵5:價值5

雖然名義上五個鍵變成兩個hashmap,但是每個filed還是會保存原來的鍵,所以減少鍵是不可行的。這時候就要看底層的存儲結構了。

Redis對hashmap進行了優化。當filed的數量較少時(因為ziplist是以順序的方式搜索元素,所以復雜度為o(N)以上肯定是不合適的)。

),它會用壹種叫做ziplist的結構保存,而不是傳統的hash結構。ziplist有幾個特點:

ziplist簡介

/weixin _ 30783913/文章/詳情/98141347

所以hashmap能節省內存靠的是ziplist的結構,而不是key的減少。

可以用以下參數控制Ziplist。

以上兩個條件必須滿足,那麽這個鍵就會被壓縮。否則,哈希類型的鍵根據正常的哈希結構存儲。