0
在我們redis的簇,Redis集羣實例比獨立實例消耗更多內存?
- 主節點(redis的3.2.7與jemalloc 3.6.0,安裝在使用蔭,黃線)所使用的內存
- 從節點2.240G(3.2.7 redis的與jemalloc 3.6.0,安裝在使用蔭,青色線)所使用的內存1.735G
- 從節點(redis的3.2.9與jemalloc 4.0.3,從源代碼編譯,橙色線)所使用的內存 1.531G
- 一個獨立的slave(redis 3.2.9,帶有jemalloc 4.0.3,從源碼編譯,綠色的l )使用1.008G的內存
使用較新版本的內存分配器可節省大約12%的內存。這很容易理解。但是,在集羣從節點的情況下,與獨立實例相比,內存使用量增加了50%?
數據庫中有很多小密鑰嗎? Redis羣集使用一個表將羣集中的每個密鑰映射到其指定的插槽,這會增加開銷,並且您擁有的密鑰越多,開銷就越大。在redis 4.0中,保存這些鍵的數據結構已經過優化,可以減少內存並提高速度。 –
在拍攝快照時,我們擁有超過500萬個密鑰,密鑰長度爲33個字節,平均值長度約爲58個字節。所以密鑰槽映射表很可能是問題的原因。謝謝,@Not_a_Golfer – thirstycrow
我會讓它成爲未來幾代人的答案。 –