繼承操作
登錄集群
redis-cli -c -h 192.168.182.110 -p 7001
192.168.182.110:7001> auth 123456
集群信息
redis-cli -c -h 192.168.182.129 -p 7001
192.168.182.110:7001> auth 123456
192.168.182.110:7001> CLUSTER INFO
列出節(jié)點信息
redis-cli -c -h 192.168.182.129 -p 7001
192.168.182.110:7001> auth 123456
192.168.182.110:7001> CLUSTER INFO
192.168.182.110:7001> CLUSTER NODES
增加節(jié)點 比如,在node1服務(wù)器上增加一節(jié)點。首先,我們添加如下配置:
# copy配置
cp /usr/local/redis/cluster_redis_7003.conf /usr/local/redis/cluster_redis_7004.conf
# 創(chuàng)建存儲目錄
mkdir /opt/software/redis-7.0.3/cluster/redis_7004
# 修改配置
vi /usr/local/redis/cluster_redis_7004.conf
bind 192.168.182.110
port 7004
daemonize yes
pidfile "/var/run/redis_7004.pid"
logfile "/usr/local/redis/cluster_redis_7004.log"
dir "/opt/software/redis-7.0.3/cluster/redis_7004"
#replicaof 192.168.182.110 6379
masterauth "123456"
requirepass "123456"
appendonly yes
cluster-enabled yes
cluster-config-file nodes_7004.conf
cluster-node-timeout 15000
# 授權(quán)
chown -R redis:redis /usr/local/redis && chown -R redis:redis /opt/software/redis-7.0.3/cluster/redis_7004
然后,再啟動服務(wù)。
redis-server /usr/local/redis/cluster_redis_7004.conf
netstat -tnlp|grep :7004
如果要在集群中增加節(jié)點,可以使用下面的方式。
[root@local-168-182-110 ~]# redis-cli -c -h 192.168.182.110 -p 7001
192.168.182.110:7001> auth 123456
# 添加節(jié)點
192.168.182.110:7001> CLUSTER MEET 192.168.182.110 7004
# 查看節(jié)點信息
192.168.182.110:7001> CLUSTER NODES
可以看到,新增的節(jié)點都是以master身份加入集群的。如果要【更換節(jié)點身份】,比如將新增的192.168.182.110:7004節(jié)點身份改為192.168.182.130:7001的slave。
redis-cli -c -h 192.168.182.110 -p 7004
192.168.182.110:7004> auth 123456
# 改變節(jié)點類型
192.168.182.110:7004> cluster replicate 0a9d68b75d529b611b4bae5753be602006fcef74
192.168.182.110:7004> CLUSTER NODES
刪除某個節(jié)點,可以參考下面的內(nèi)容。
redis-cli -c -h 192.168.182.110 -p 7001
192.168.182.110:7001> auth 123456
# 查看節(jié)點
192.168.182.110:7001> CLUSTER NODES
# 刪除節(jié)點
192.168.182.110:7001> CLUSTER FORGET 378ef2a24fb4138496b8da85bb66143800b53686
# 檢查節(jié)點信息
192.168.182.110:7001> CLUSTER NODES
最后,在配置修改完后保存配置。
redis-cli -c -h 192.168.182.110 -p 7001
192.168.182.110:7001> auth 123456
# 將節(jié)點的配置文件保存到硬盤里面
192.168.182.110:7001> CLUSTER SAVECONFIG
可以看到,之前刪除的節(jié)點又恢復(fù)了,這是因為對應(yīng)的配置文件沒有刪除,執(zhí)行CLUSTER SAVECONFIG恢復(fù)。
接下來,我們模擬下模擬master節(jié)點掛掉的場景。
netstat -lntp |grep :7001|awk '{print $NF}'|cut -d '/' -f 1|xargs kill -9
redis-cli -c -h 192.168.182.111 -p 7001 -a 123456 CLUSTER NODES
可以看到,192.168.182.110:7001
的一行為master fail,狀態(tài)為disconnected;而對應(yīng)192.168.182.110:7004
的一行,slave已經(jīng)變成master。
接著,我們再模擬下故障恢復(fù)場景,重新啟動192.168.182.110:7001節(jié)點。
redis-server /usr/local/redis/cluster_redis_7001.conf
redis-cli -c -h 192.168.182.111 -p 7001 -a 123456 CLUSTER NODES
可以看到,192.168.182.110:7001
節(jié)點啟動后為slave節(jié)點,并且是192.168.182.110:7004
的slave節(jié)點。即master節(jié)點如果掛掉,它的slave節(jié)點變?yōu)樾耺aster節(jié)點繼續(xù)對外提供服務(wù),而原來的master節(jié)點如果重啟,則變?yōu)樾耺aster節(jié)點的slave節(jié)點。需要說明的是,cluster不能選擇db,只能默認db為0,所以select切庫相當(dāng)于是不能使用的。
#常用命令
#查看集群信息
- cluster info :打印集群的信息
- cluster nodes :列出集群當(dāng)前已知的所有節(jié)點( node),以及這些節(jié)點的相關(guān)信息。
#節(jié)點操作
- cluster meet :將 ip 和 port 所指定的節(jié)點添加到集群當(dāng)中,讓它成為集群的一份子。
- cluster forget <node_id> :從集群中移除 node_id 指定的節(jié)點。
- cluster replicate <node_id> :將當(dāng)前節(jié)點設(shè)置為 node_id 指定的節(jié)點的從節(jié)點。
- cluster saveconfig :將節(jié)點的配置文件保存到硬盤里面。
#槽(slot)操作
- cluster addslots [slot …] :將一個或多個槽( slot)指派( assign)給當(dāng)前節(jié)點。
- cluster delslots [slot …] :移除一個或多個槽對當(dāng)前節(jié)點的指派。
- cluster flushslots :移除指派給當(dāng)前節(jié)點的所有槽,讓當(dāng)前節(jié)點變成一個沒有指派任何槽的節(jié)點。
- cluster setslot node <node_id> :將槽 slot 指派給 node_id 指定的節(jié)點,如果槽已經(jīng)指派給另一個節(jié)點,那么先讓另一個節(jié)點刪除該槽>,然后再進行指派。
- cluster setslot migrating <node_id> :將本節(jié)點的槽 slot 遷移到 node_id 指定的節(jié)點中。
- cluster setslot importing <node_id> :從 node_id 指定的節(jié)點中導(dǎo)入槽 slot 到本節(jié)點。
- cluster setslot stable :取消對槽 slot 的導(dǎo)入( import)或者遷移( migrate)。
#鍵
cluster keyslot :計算鍵 key 應(yīng)該被放置在哪個槽上。 cluster countkeysinslot :返回槽 slot 目前包含的鍵值對數(shù)量。 cluster getkeysinslot :返回 count 個 slot 槽中的鍵 主從模式、哨兵模式、集群模式的環(huán)境部署就到這里了,redis更多操作請查看官方文檔。
來源:https://blog.csdn.net/xiangzhihong8/article/details/127936842