中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

卢龙县| 永丰县| 贵州省| 苍溪县| 顺平县| 大新县| 重庆市| 南城县| 无锡市| 普宁市| 佳木斯市| 黄石市| 洛浦县| 丽江市| 绥德县| 弋阳县| 星座| 长岛县| 宁明县| 甘泉县| 秦皇岛市| 澄迈县| 禄丰县| 中超| 德兴市| 兴宁市| 龙江县| 岗巴县| 桃园市| 新竹县| 南华县| 河津市| 革吉县| 平湖市| 大兴区| 大荔县| 华容县| 巴东县| 和硕县| 项城市| 古浪县|