Linux_基於Docker搭建Redis叢集
常用命令:
docker images 命令來檢視我們已經安裝映象
docker search <name>:查詢映象名稱docker pull <name>:拉取映象
docker ps 預設顯示執行的容器,顯示所有容器: docker ps -a
docker image ls:列出所有的映象
docker stop <name>:暫停容器
docker start <name>:啟動容器
docker rm <containerID>:刪除容器(必須先docker stop或者docker kill後我們才能刪除)
docker rmi <imageID>: 刪除映象
啟動映象
docker run -d -i -t <imageID> /bin/bash
啟動指定到本地對映埠的映象
docker run --name redis-master -p 6379:6379 -d redis:3.2
步驟一:Redis映象安裝
1、下載Redis映象
映象中心
推薦使用網易蜂巢的映象中心 地址:https://c.163.com/hub#/m/home/
Redis映象
- docker pull hub.c.163.com/library/redis:latest
安裝完成後,使用docker images命令,檢視是否安裝成功
步驟二:Redis叢集搭建
1、執行Redis映象
分別使用以下命令啟動3個Redis
- docker run --name redis-6379 -p 6379:6379 -d hub.c.163.com/library/redis
- docker run --name redis-6380 -p 6380:6379 -d hub.c.163.com/library/redis
- docker run --name redis-6381 -p 6381:6379 -d hub.c.163.com/library/redis
使用docker ps命令,檢視是否啟動成功
2、配置Redis叢集
分別使用 docker inspect 容器ID 命令,檢視3個Redis的Docker內網IP地址
在Networks欄,可以看見該容器的Docker內網IP地址。三個Redis的內網IP地址如下
redis-6379:172.17.0.3:6379 redis-6380:172.17.0.4:6379 redis-6381:172.17.0.5:6379
進入Docker容器內部
使用redis-6379為主機,其餘兩臺為從機 使用 docker exec -ti 容器ID /bin/bash 分別進入三個Redis容器 進入容器後,使用 redis-cli 命令,連線redis服務端 連線服務後,使用 info replication 檢視當前機器的角色 未配置前,三臺redis均為 master主機
使用上面的方法,分別進入 redis-6379、redis-6380、redis-6381容器內部,並連線redis服務端
分別在redis-6380和redis-6381使用 SLAVEOF 172.17.0.3 6379 命令 在redis-6379 使用 info replication 命令,驗證主從關係是否配置成功
這樣,redis的叢集環境就搭建好了,本機測試無問題,這裡就不演示了。為了保證redis叢集的高可用,下面開始配置redis哨兵模式。
步驟三:Redis哨兵模式
1、配置Redis哨兵
Redis哨兵配置,有兩種方案
方案一:基於現有的3臺Redis容器服務,互相啟動一個Redis哨兵 方案二:重新再啟動3臺Redis容器服務,分別啟動一個Redis哨兵
方案二會額外的新增3個Redis容器服務,所以這裡演示方案一
分別進入3臺Redis容器內部,執行以下操作首先,進入Docker容器內部
使用 docker exec -ti 容器ID /bin/bash 分別進入三個Redis容器
然後,編寫Redis哨兵配置檔案
使用 cd / 命令,進入根目錄
使用 touch sentinel.conf命令,建立哨兵配置檔案
使用 vim 命令編輯 sentinel.conf 檔案, 新增以下內容 sentinel monitor host6379 172.17.0.3 6379 1
在進行編輯時,需要先安裝vim,命令為 apt-get update、apt-get install vim –y最後,啟動Redis哨兵
使用 redis-sentinel /sentinel.conf 啟動Redis哨兵監控 使用 ps –ef |grep redis 命令,可以看到redis-server和redis-sentinel正在執行
至此,哨兵模式配置完畢,按理說,不應在容器內部進行操作,但應個人能力有限,未找到其它的解決方案。有其它方式能夠配置redis哨兵模式,歡迎指教!
步驟四:進行驗證
1、驗證
使用 docker ps 命令,檢視正在執行的映象
通過檢視Redis哨兵日誌,可以看到,redis哨兵正在監控
當我們把redis主機關掉時,可以看到,redis重新選舉了新的主機