Redis5.0.8集群搭建与说明
文章目錄
- 1. 環(huán)境說(shuō)明
- 2. 修改集群配置
- 3. 創(chuàng)建集群
- 4. 集群槽位
- 5. 主節(jié)點(diǎn)故障問(wèn)題
1. 環(huán)境說(shuō)明
RedisCluster要求至少3個(gè)主節(jié)點(diǎn),因此我們需要啟動(dòng)6個(gè)Redis實(shí)例(3主3從)
準(zhǔn)備3臺(tái)虛擬機(jī),分別安裝Redis,步驟可以參考之前的文章:Linux安裝Redis步驟
| 192.168.25.132:6379 | master |
| 192.168.25.132:6380 | slave |
| 192.168.25.133:6379 | master |
| 192.168.25.133:6380 | slave |
| 192.168.25.134:6379 | master |
| 192.168.25.134:6380 | slave |
2. 修改集群配置
cluster-enabled yes:開(kāi)啟集群
cluster-config-file nodes-6379.conf:集群節(jié)點(diǎn)信息的配置文件(同一臺(tái)Linux運(yùn)行多個(gè)實(shí)例記得名稱(chēng)不要重復(fù))
cluster-node-timeout 15000:節(jié)點(diǎn)超時(shí)時(shí)間
3. 創(chuàng)建集群
方式一:直接批量創(chuàng)建,每個(gè)主節(jié)點(diǎn)帶1個(gè)從節(jié)點(diǎn)。前面3個(gè)MASTER,后面3個(gè)SLAVE,但是不能指定具體的主從關(guān)系
redis-cli --cluster create 192.168.25.132:6379 192.168.25.133:6379 192.168.25.134:6379 192.168.25.132:6380 192.168.25.133:6380 192.168.25.134:6380 --cluster-replicas 1方式二:先創(chuàng)建主節(jié)點(diǎn),再添加從節(jié)點(diǎn)
添加主節(jié)點(diǎn)
redis-cli --cluster create 192.168.25.132:6379 192.168.25.133:6379 192.168.25.134:6379添加從節(jié)點(diǎn)
redis-cli --cluster add-node 192.168.25.132:6380 192.168.25.132:6379 --cluster-slave --cluster-master-id ef201d6460ff6fcbb0ebda02dba4df118f3b876d redis-cli --cluster add-node 192.168.25.133:6380 192.168.25.133:6379 --cluster-slave --cluster-master-id 1e78d19c63ca0c16d8c9449f72bd24baebb73b1f redis-cli --cluster add-node 192.168.25.134:6380 192.168.25.134:6379 --cluster-slave --cluster-master-id bfb7815da6b96b030a35483698967e60b79c59cd最后一個(gè)參數(shù)是主節(jié)點(diǎn)的ID,查看方式就是先redis-cli連上隨便一臺(tái)主節(jié)點(diǎn)集群,然后運(yùn)行cluster nodes命令:
192.168.25.132:6379> CLUSTER NODES bfb7815da6b96b030a35483698967e60b79c59cd 192.168.25.134:6379@16379 master - 0 1611058741637 3 connected 10923-16383 1e78d19c63ca0c16d8c9449f72bd24baebb73b1f 192.168.25.133:6379@16379 master - 0 1611058739624 2 connected 5461-10922 ef201d6460ff6fcbb0ebda02dba4df118f3b876d 192.168.25.132:6379@16379 myself,master - 0 1611058740000 1 connected 0-5460操作完畢后,再次查看集群狀態(tài),3主3從,搭建完畢:
4. 集群槽位
Redis集群有16384個(gè)槽位,每個(gè)主節(jié)點(diǎn)管理互不重復(fù)的槽位。
當(dāng)操作某個(gè)KEY時(shí),通過(guò)CRC16算法進(jìn)行哈希計(jì)算,得出該KEY所對(duì)應(yīng)的槽位,從而確定應(yīng)該連接哪個(gè)節(jié)點(diǎn)進(jìn)行操作。
基本流程如下:
5. 主節(jié)點(diǎn)故障問(wèn)題
集群解決的就是高可用問(wèn)題,思考:當(dāng)其中一臺(tái)主節(jié)點(diǎn)掛掉之后,集群還能正常使用嗎?
redis-cli -h 192.168.25.132 -p 6379 連接成功后,執(zhí)行shutdown進(jìn)行關(guān)閉
此時(shí)連接其他節(jié)點(diǎn),查看集群狀態(tài):
- master 132:6379 先是處于disconnected狀態(tài)
- 過(guò)一段時(shí)間后,master 進(jìn)入fail狀態(tài)
- 此時(shí),slave 132:6380 升級(jí)成 master 節(jié)點(diǎn),并繼承原先的0-5460槽位
打開(kāi)132:6380的節(jié)點(diǎn)日志,可以更清晰地看到整個(gè)過(guò)程:
拓展:如果原主節(jié)點(diǎn) 132:6379 重新運(yùn)行后,會(huì)怎么樣?
說(shuō)做就做,直接啟動(dòng):
redis-server /usr/local/redis-5.0.8/conf/redis.conf查看集群狀態(tài):
由此可見(jiàn),此時(shí) 132:6379 大哥變小弟了,狀態(tài)是 slave 從節(jié)點(diǎn)
總結(jié)
以上是生活随笔為你收集整理的Redis5.0.8集群搭建与说明的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: SpringBoot+Redis防止接口
- 下一篇: Linux环境下搭建 MySQL8 主从