91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis集群是16384個槽的原因

發布時間:2020-10-29 14:57:36 來源:億速云 閱讀:290 作者:小新 欄目:關系型數據庫

Redis集群是16384個槽的原因?這個問題可能是我們日常學習或工作經常見到的。希望通過這個問題能讓你收獲頗深。下面是小編給大家帶來的參考內容,讓我們一起來看看吧!

Redis 集群并沒有使用一致性hash,而是引入了哈希槽的概念。Redis 集群有16384個哈希槽,每個key通過CRC16校驗后對16384取模來決定放置哪個槽,集群的每個節點負責一部分hash槽。但為什么哈希槽的數量是16384(2^14)個呢,這個問題在github上有人提過,作者也給出了解答,下面我們來簡單分析一下。

為什么是16384(2^14)個?

在redis節點發送心跳包時需要把所有的槽放到這個心跳包里,以便讓節點知道當前集群信息,16384=16k,在發送心跳包時使用bitmap壓縮后是2k(2 * 8 (8 bit) * 1024(1k) = 2K),也就是說使用2k的空間創建了16k的槽數。

雖然使用CRC16算法最多可以分配65535(2^16-1)個槽位,65535=65k,壓縮后就是8k(8 * 8 (8 bit) * 1024(1k) = 8K),也就是說需要需要8k的心跳包,作者認為這樣做不太值得;并且一般情況下一個redis集群不會有超過1000個master節點,所以16k的槽位是個比較合適的選擇。

作者原話:

1、普通心跳數據包攜帶節點的完整配置,該配置可以用舊配置以冪等方式替換,以便更新舊配置。這意味著它們包含原始形式的節點的槽配置,16k的槽配置需要使用2k內存空間,但是使用65k槽將使用8k的內存空間。

2、同時,由于其他設計折衷,Redis集群不可能擴展到超過1000個節點。

因此,16k是比較合適的,可以確保每個主設備有足夠的槽,最大為1000個。redis的node配置信息通過位圖存儲傳輸的,傳輸前有一個壓縮過程,壓縮比跟槽個數和節點數有很大關系(because when N is small the bitmap would have slots/N bits set that is a large percentage of bits set.)【槽數量/節點數】當這個N越大,壓縮比就越小。

感謝各位的閱讀!看完上述內容,你們對Redis集群是16384個槽的原因大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪雅县| 商丘市| 商水县| 成都市| 清水县| 汉沽区| 宣恩县| 佛冈县| 奈曼旗| 南昌县| 逊克县| 凉城县| 锡林浩特市| 息烽县| 长春市| 攀枝花市| 南岸区| 南川市| 宜黄县| 阿拉善盟| 黔东| 河间市| 福建省| 陇西县| 额济纳旗| 贵溪市| 肇庆市| 营口市| 韩城市| 丹阳市| 海城市| 乐东| 洞头县| 依兰县| 方山县| 泾阳县| 巩义市| 东丽区| 耒阳市| 武安市| 民县|