redis哈希表擴容與縮容?
隨著redis的操作的不斷執行,哈希表保存的鍵值會逐漸地增多或者減少,為了讓哈希表的負載因子(ratio)維持在一個合理的范圍之內,當哈希表保存的鍵值對數量太多或者太少時,程序需要對哈希表的大小進行相應的擴展或者收縮。
ratio = ht[0].used / ht[0].size比如,hash表的size為4,如果已經插入了4個k-v的話,則ratio為1。redis的默認負載因子為1,負載因子最大可以達到5(持久化的時候,需要fork操作,這個時候不會分配內存,所以redis源碼中有判斷,如果大于數據長度的5倍(5*used),則馬上擴容)。擴展和收縮哈希表的工作可以執行rehash(重新散列)操作來完成,Redis對字典的哈希表執行rehash的策略如下:
1、如果ratio小于0.1,則會對hash表進行收縮操作。
上一篇玉米種植有必要耕翻土壤嗎
下一篇random庫的使用例題