redis集群搭建及啟動、停止、重啟操作

redis版本:redis-5.0.3.tar.gz
操作系統:完全新安裝的centos7.6系統


使用一臺虛擬機模擬6個redis節點,3個master,3個slave,虛擬機IP為192.168.220.11
和使用不同的IP創建集群基本過程一致,為了方便,就不創建多個虛擬機了。
開始搭建:

 yum install -y wget gcc systemctl stop firewalld.service systemctl disable firewalld.service cd /opt wget http://download.redis.io/releases/redis-5.0.3.tar.gz tar zxvf redis-5.0.3.tar.gz mv redis-5.0.3 redis cd redis

解壓後目錄結構如下:

redis集群搭建及啟動、停止、重啟操作

編譯安裝:

 make MALLOC=libc make install
redis集群搭建及啟動、停止、重啟操作

src目錄包含了redis server和redis cli的相關命令腳本,將該路徑加入到PATH環境變量當中,方便使用

 cd /opt/redis mkdir cluster # 創建redis實例根目錄 cd cluster mkdir 7001 # 創建具體redis實例相關目錄,指定其端口號為7001 cd 7001 cp /opt/redis/redis.conf . #複製配置文件,修改之後當作當前redis實例的啟動配置 mkdir data # 創建數據存儲目錄
修改配置文件文件,最小化修改配置下面為需要修改的配置項以及說明port 7001 # 客戶端連接端口bind 192.168.220.11 #實例綁定的IP地址dir /opt/redis/cluster/7001/data # redis實例數據配置存儲位置daemonize yes # 是否以後臺進程的方式啟動redis實例pidfile pidfile /var/run/redis_7001.pid # 指定該進程pidfilecluster-enabled yes # 開啟集群模式cluster-config-file # 集群中該實例的配置文件,該文件會在data目錄下生成appendonly yes # 開啟aop日誌protected-mode no # 關閉保護模式requirepass cyclone # master開啟密碼保護masterauth cyclone # replica同master交互密碼接下來按照同樣的方式創建7002,7003,7004,7005,7006的文件夾,修改配置文件依次啟動redis實例redis-server /opt/redis/cluster/7001/redis.confredis-server /opt/redis/cluster/7002/redis.confredis-server /opt/redis/cluster/7003/redis.confredis-server /opt/redis/cluster/7004/redis.confredis-server /opt/redis/cluster/7005/redis.confredis-server /opt/redis/cluster/7006/redis.conf查看啟動結果
redis集群搭建及啟動、停止、重啟操作

集群的創建,將redis實例聯繫起來,創建一個集群

redis-cli -a cyclone --cluster create --cluster-replicas 1 192.168.220.11:7001 192.168.220.11:7002 192.168.220.11:7003 192.168.220.11:7004 192.168.220.11:7005 192.168.220.11:7006輸出如下:
redis集群搭建及啟動、停止、重啟操作

redis集群搭建及啟動、停止、重啟操作

一些slave和master在相同的物理主機上,所以會出現一些警告,這個不影響。
連接到集群的某個節點:

redis-cli -a cyclone -c -h 192.168.220.11 -p 7001
redis集群搭建及啟動、停止、重啟操作

查看集群相關信息:

redis集群搭建及啟動、停止、重啟操作

查看集群節點信息:

redis集群搭建及啟動、停止、重啟操作

集群相關操作:

1.關閉集群的某個節點,比如關閉端口號為7001的實例:

redis-cli -a cyclone -c -h 192.168.220.11 -p 7001 shutdown
查看結果

redis集群搭建及啟動、停止、重啟操作

關閉之後,使用redis-server /opt/redis/cluster/7001/redis.conf命令可以將實例重新啟動,啟動完成之後,自動加入到集群當中

redis集群搭建及啟動、停止、重啟操作

2.集群的關閉

逐個關閉redis實例進程即可
查找redis實例進程號

 ps -ef | grep redis
redis集群搭建及啟動、停止、重啟操作

關閉redis進程,使用kill -9 ${進程號},如果需要關閉多個進程,進程號之間空格隔開即可

kill -9 10252 10257 10262 10267 10272 10294也可執行以下命令來關閉redis進程pkill -9 redis

3.redis集群的重新啟動

保留原來的數據:
逐個關閉redis實例,再逐個的啟動即可。

丟棄原來的數據:
關閉實例,清空實例中數據存放目錄的所有內容,然後逐個啟動實例,在任意一個實例上執行集群的創建命令即可,本質上就是創建一個新的集群
清空數據存儲目錄內容:

 rm -rf /opt/redis/cluster/7001/data/* rm -rf /opt/redis/cluster/7002/data/* rm -rf /opt/redis/cluster/7003/data/* rm -rf /opt/redis/cluster/7004/data/* rm -rf /opt/redis/cluster/7005/data/* rm -rf /opt/redis/cluster/7006/data/*

啟動實例:

 redis-server /opt/redis/cluster/7001/redis.conf redis-server /opt/redis/cluster/7002/redis.conf redis-server /opt/redis/cluster/7003/redis.conf redis-server /opt/redis/cluster/7004/redis.conf redis-server /opt/redis/cluster/7005/redis.conf redis-server /opt/redis/cluster/7006/redis.conf

執行集群創建命令:

redis-cli -a cyclone --cluster create --cluster-replicas 1 192.168.220.11:7001 192.168.220.11:7002 192.168.220.11:7003 192.168.220.11:7004 192.168.220.11:7005 192.168.220.11:7006

redis cluster-cluster 命令手動管理redis集群

3、將 ip 和 port 所指定的節點添加到集群中CLUSTER MEET  4、從集群中移除 node_id 指定的節點CLUSTER FORGET 5、將當前節點設置為 node_id 指定的節點的從節點CLUSTER REPLICATE 6、將節點的配置文件保存到硬盤裡面CLUSTER SAVECONFIG7、將一個或多個槽(slot)指派(assign)給當前節點CLUSTER ADDSLOTS  [slot ...]8、移除一個或多個槽對當前節點的指派CLUSTER DELSLOTS  [slot ...]9、 移除指派給當前節點的所有槽,讓當前節點變成一個沒有指派任何槽的節點CLUSTER FLUSHSLOTS10、將槽 slot 指派給 node_id 指定的節點,如果槽已經指派給另一個節點,那麼先讓另一個節點刪除該槽>,然後再進行指派CLUSTER SETSLOT  NODE 11、將本節點的槽 slot 遷移到 node_id 指定的節點中CLUSTER SETSLOT  MIGRATING 12、從 node_id 指定的節點中導入槽 slot 到本節點CLUSTER SETSLOT  IMPORTING 13、取消對槽 slot 的導入(import)或者遷移(migrate)CLUSTER SETSLOT  STABLE14、計算鍵 key 應該被放置在哪個槽上CLUSTER KEYSLOT 15、返回槽 slot 目前包含的鍵值對數量CLUSTER COUNTKEYSINSLOT 16、返回 count 個 slot 槽中的鍵CLUSTER GETKEYSINSLOT    


分享到:


相關文章: