Redis高可用之集羣模式

一臺機器上模擬Redis集羣

創建方式1:redis-cli

1、創建一個文件夾redis-cluster,然後在其下面分別創建6個文件夾如下
mkdir -p /usr/local/src/redis/redis-cluster
mkdir 7001、mkdir 7002、mkdir 7003、mkdir 7004、mkdir 7005、mkdir 7006
2、把 redis.conf 配置文件分別copy到700*下,修改各個文件內容
daemonize yes
port 700*(分別對每個機器的端口號進行設置)
bind 192.168.56.101(綁定當前機器的ip)
dir /usr/local/src/redis/redis-cluster/700*/(數據文件存放位置)
cluster-enabled yes(啓動集羣模式)
cluster-config-file nodes700*.conf
cluster-node-timeout 5000
appendonly yes
3、分別啓動6個redis實例,檢查是否啓動成功
/usr/local/src/redis/redis-5.0.8/src/redis-server /usr/local/src/redis/redis-cluster/700*/redis.conf
ps -ef | grep redis
4、創建集羣(redis5之前是用redis-trib.rb操作集羣的)
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster create --cluster-replicas 1 192.168.56.101:7001 192.168.56.101:7002 192.168.56.101:7003 192.168.56.101:7004 192.168.56.101:7005 192.168.56.101:7006
5、驗證
5.1、連接任意一個客戶端即可:./redis-cli -c -h -p(-c表示集羣模式,指定ip地址和端口號)如:/usr/local/src/redis/redis-5.0.8/src/redis-cli -c -h 192.168.56.101 -p 700*
5.2、進行驗證:cluster info(查看集羣信息)、cluster nodes(查看節點列表)
5.3、關閉集羣則需要逐個進行關閉,使用命令:redis-cli -c -h 192.168.56.101 -p 700* shutdown

創建方式2:create-cluster(推薦使用,如需改更多配置則修改redis.conf或者create-cluster)

1、修改配置
cd /usr/local/src/redis/redis-5.0.8/utils/create-cluster
vi create-cluster
PORT=7000起始端口,不含
TIMEOUT=2000
NODES=6節點數量,3主3備
REPLICAS=1
2、集羣操作(參考readme文件,或者直接看create-cluster)
./create-cluster create創建
./create-cluster start啓動
./create-cluster stop停止

添加節點:注意創建方式1和創建方式2的區別,這裏以方式1爲例

1、創建7007、7008文件夾,拷貝並修改redis.conf後啓動
2、主節點加入集羣:/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster add-node 192.168.56.101:7007 192.168.56.101:7001
在這裏插入圖片描述
3、查看集羣狀態,可以看到還沒有分配slot槽
/usr/local/src/redis/redis-5.0.8/src/redis-cli -c -h 192.168.56.101 -p 7001
cluster nodes
在這裏插入圖片描述
4、爲7007分配槽,使用集羣中的任意一個主節點重新分片
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster reshard 192.168.56.101:7001
會詢問要分多少個槽?分給哪個節點?
How many slots do you want to move (from 1 to 16384)? 1000
What is the receiving node ID? 678500d6bd55775a9be7f7112b4124fff8d68093
有兩種方式,all是所有節點都作爲分配槽的源節點,done是自己選擇從哪個節點上取槽
Please enter all the source node IDs.
Type ‘all’ to use all the nodes as source nodes for the hash slots.
Type ‘done’ once you entered all the source nodes IDs.
這裏輸入all
5、查看集羣狀態,可以看到已經分配slot槽
在這裏插入圖片描述
6、從節點加入集羣
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster add-node 192.168.56.101:7008 192.168.56.101:7001
7、執行REPLICAS命令來指定當前節點(從節點)的主節點id爲哪個
/usr/local/src/redis/redis-5.0.8/src/redis-cli -c -h 192.168.56.101 -p 7008
CLUSTER REPLICAS 678500d6bd55775a9be7f7112b4124fff8d68093提示OK表示成功

刪除節點

1、刪除從節點7008:輸入del-node命令,指定刪除節點ip和端口,以及節點id
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster del-node 192.168.56.101:7008 04f5f0e37784c7ec0fe59fb93c7a369c86e2f39b
2、刪除主節點7007:槽全部移入7001,分別輸入槽數量、7001節點id、7007節點id、done
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster reshard 192.168.56.101:7007
在這裏插入圖片描述
此時7007沒有槽了,刪除即可
/usr/local/src/redis/redis-5.0.8/src/redis-cli --cluster del-node 192.168.56.101:7007 678500d6bd55775a9be7f7112b4124fff8d68093

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章