今天來講如何實現在docker下配置redis的主從複製(讀寫分離)和哨兵機制,希望能給廣大博友帶來幫助。
Docker配置redis主從配置
1.拉取docker鏡像
docker ps -a
由此可見 只有一個redis 主配置
2.配置兩個從配置
docker run -name slave -p 6380:6379 -d redis
docker run --name slave1 -p 6381:6379 -d redis
3.再次查看docker鏡像
docker ps -a
4.開始主從配置
4.1先查看內網的ip地址
docker inspect 872a7feaa6fd
3個redis的內網ip地址爲:
redis-6379:172.17.0.2:6379
redis-6380:172.17.0.3:6379
redis-6381:172.17.0.4:6379
4.2進入容器內部 查看當前redis角色(主還是從)
目前三個都是master狀態
4.3、使用redis-cli命令修改redis-6380、redis-6381的主機爲172.17.0.2 6379
4.4、查看redis-6379是否已經擁有2個從機
由此可見 connected_slaves:2 擁有2個從機
Docker配置redis哨兵機制
5、配置Sentinel哨兵
進入3臺redis容器內部進行配置,在容器根目錄裏面創建sentinel.conf文件
文件內容爲:sentinel monitor mymaster 172.17.0.2 6379 1
出現bash: vim: command not found
解決:1、apt-get update 2、apt-get install vim
最後,啓動Redis哨兵:
6.測試
6.1打開多個窗口(便於觀察)
6.2關閉主配置(Master)
docker stop 872a7feaa6fd
查看其他兩個是否選舉成功
完成。