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

為什么redis集群的最大槽數(shù)是16384個(gè)

共計(jì) 991 個(gè)字符,預(yù)計(jì)需要花費(fèi) 3 分鐘才能閱讀完成。

自動(dòng)寫代碼機(jī)器人,免費(fèi)開(kāi)通

為什么 redis 集群的最大槽數(shù)是 16384 個(gè)?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面丸趣 TV 小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

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

HASH_SLOT = CRC16(客戶端 key) mod 16384

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

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

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

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

看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道,感謝您對(duì)丸趣 TV 的支持。

向 AI 問(wèn)一下細(xì)節(jié)

丸趣 TV 網(wǎng) – 提供最優(yōu)質(zhì)的資源集合!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2024-02-03發(fā)表,共計(jì)991字。
轉(zhuǎn)載說(shuō)明:除特殊說(shuō)明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請(qǐng)注明出處。
評(píng)論(沒(méi)有評(píng)論)
主站蜘蛛池模板: 绥芬河市| 桦川县| 垦利县| 宿迁市| 柳江县| 万州区| 石泉县| 汕头市| 永春县| 新竹市| 云浮市| 黑山县| 新津县| 松江区| 宁南县| 手游| 肥东县| 新田县| 同德县| 平顺县| 阜南县| 芜湖市| 丽水市| 鞍山市| 嘉祥县| 平乐县| 会同县| 普兰店市| 嘉禾县| 高要市| 西昌市| 明光市| 长治县| 黎平县| 自治县| 甘南县| 乌什县| 湖口县| 南宫市| 新丰县| 吴忠市|