真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯網站制作重慶分公司

為什么redis集群的較大槽數是16384個-創(chuàng)新互聯

為什么redis集群的較大槽數是16384個?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

10年積累的網站建設、網站制作經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先建設網站后付款的網站建設流程,更有興業(yè)免費網站建設讓你可以放心的選擇與我們合作。

Redis 集群并沒有使用一致性hash,而是引入了哈希槽的概念。
Redis 集群有16384(2^14)個哈希槽,每個key通過CRC16校驗后對16384取模來決定放置哪個槽,集群的每個節(jié)點負責一部分hash槽。
這種結構很容易添加或者刪除節(jié)點,并且無論是添加刪除或者修改某一個節(jié)點,都不會造成集群不可用的狀態(tài)。

HASH_SLOT = CRC16(客戶端key) mod 16384

CRC16算法產生的hash值有16bit,可以產生的值在0~65535之間。

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


65535=65k,壓縮后就是8k(8 * 8 (8 bit) * 1024(1k) = 8K),也就是說需要需要8k的心跳包。
Redis Cluster原理

1.node1和node2首先進行握手meet,知道彼此的存在
2.握手成功后,兩個節(jié)點會定期發(fā)送ping/pong消息,交換數據信息(消息頭,消息體)
3.消息頭里面有個字段:unsigned char myslots[CLUSTER_SLOTS/8],每一位代表一個槽,如果該位是1,代表該槽屬于這個節(jié)點
4.消息體中會攜帶一定數量的其他節(jié)點的信息,大約占集群節(jié)點總數量的十分之一,至少是3個節(jié)點的信息。節(jié)點數量越多,消息體內容越大。
5.每秒都在發(fā)送ping消息。每秒隨機選取5個節(jié)點,找出最久沒有通信的節(jié)點發(fā)送ping消息。
6.每100毫秒都會掃描本地節(jié)點列表,如果發(fā)現節(jié)點最近一次接受pong消息的時間大于cluster-node-timeout/2,則立即發(fā)送ping消息redis集群的主節(jié)點數量基本不可能超過1000個,超過的話可能會導致網絡擁堵。


看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注創(chuàng)新互聯行業(yè)資訊頻道,感謝您對創(chuàng)新互聯網站建設公司,的支持。


網站欄目:為什么redis集群的較大槽數是16384個-創(chuàng)新互聯
本文網址:http://weahome.cn/article/edios.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部