Redis docker叢集重啟
當我們關閉虛擬機器時, 而虛擬機器上有6個redis叢集,這是redis叢集也就全部關閉了,那麼如何重新啟動redis叢集呢?
首先嚴謹起見,我們啟動其中一個redis節點
docker start r1 #我第一個redis容器的名字
lsof -i :5001 #redis 叢集在啟動時,我為容器指定了ip : 172.19.0.2, 對映埠是5001->6379 ,這裡檢查埠號是否正常監聽
#如果忘記了容器的ip怎麼辦?
docker inspect +容器名/容器id,你會看到IPv4Address就知道了
#進入容器,啟動redis
docker exec -it r1 bash
cd /usr/redis/src
./redis-server ../redis.conf #啟動redis
#客戶端登陸測試 ,-h指定自己容器的ip
./redis-cli -h 172.19.0.2
#測試docker容器和宿主機連通性
telnet 172.19.0.2 6379
#測試宿主機和最外層windows環境連通性
windows --> cmd --> telnet 虛擬機器ip 5001 #5001是docker容器6379對映到宿主機的埠
#其他節點也是這種啟動方式,但可以同時啟動多節點:docker start r1 r2 r3 r4 r5 r6
#進入每個redis 容器啟動服務:
cd /usr/redis/src
./redis-server ../redis.conf
#進入r1 節點,檢查叢集健康狀況
cd /usr/redis/cluster
./redis-trib.rb check 172.19.0.2:6379 # r1 的ip和r1 redis啟動埠,很顯然,叢集正常,即時重啟也沒關係
#測試
./redis-cli -h 172.19.0.2
#報錯
原因是沒有加-c啟動客戶端,所以修改為
./redis-cli -c -h 172.19.0.2
顯然資料被轉發到了其他redis節點上,顯示redis叢集啟動正常