久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

Redis集群是16384個槽的原因

148次閱讀
沒有評論

共計 1005 個字符,預計需要花費 3 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

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

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 個槽的原因大概了解了嗎?希望文章內容對大家有所幫助。如果想了解更多相關文章內容,歡迎關注丸趣 TV 行業資訊頻道。

向 AI 問一下細節

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-18發表,共計1005字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 邵东县| 绥棱县| 通渭县| 论坛| 富宁县| 侯马市| 克拉玛依市| 越西县| 沙河市| 巴彦县| 手机| 开阳县| 抚松县| 陆良县| 木兰县| 射洪县| 蓬莱市| 新化县| 牟定县| 葵青区| 林甸县| 滕州市| 荥阳市| 涪陵区| 惠水县| 库尔勒市| 同江市| 车险| 布拖县| 阳山县| 东乌珠穆沁旗| 佛教| 当雄县| 武穴市| 虎林市| 昌黎县| 中卫市| 上杭县| 安吉县| 大理市| 孝义市|