基於 docker 的redis 主從+哨兵(快速部署)


很簡單(字多的步驟見:http://www.cnblogs.com/vipzhou/p/8580495.html)

1、直接啟動2個容器

docker network create --subnet 172.30.0.0/16 yapi_net

mkdir -p /opt/redis_01/data
mkdir -p /opt/redis_02/data
docker network inspect yapi_net
docker run  --network yapi_net --ip 172.30.0.21    -d --name redis_01   --restart always  -p 6380:6379   -v  /opt/redis_01/data:/data  docker.io/redis
docker run  --network yapi_net --ip 172.30.0.22    -d --name redis_02   --restart always  -p 6381:6379   -v  /opt/redis_02/data:/data  docker.io/redis

2、分別進去其中兩個容器,進行中從配置,這里只演示一個

docker exec -it redis_6379 /bin/bash

  redis-cli  -h  ip  -a  password

    SLAVEOF 172.30.0.21  6379         #意思是自己屬於哪個機器的從

    INFO replication   #查看   master_link_status:up  表示成功

3、進去一台從 配置哨兵()

cat << EOF > sentinel.conf
> sentinel monitor mymaster 172.30.0.21  6379 1     #這里填寫主的信息
> EOF

 redis-sentinel sentinel.conf      #啟動哨兵

大功告成

------------------------------------------------------------------------------------------------

在兩台真機上部署

SLAVEOF 要指定真機ip和暴露端口,哨兵也要制定真機ip 和暴露端口,否則哨兵沒用

哨兵作用:通過哨兵監控主redis,當主redis掛掉時,會自動切換從為主,哨兵不會退出,而是持續監控原redis主,當原redis主,重新啟動后,會將它設置為redis從

 ----------------------------------------------------------------------------------------------------

另:也可以指定配置文件運行。

配置文件修改部分:

bind 0.0.0.0

daemonize no  #關閉守護進程,在前台運行,

dir /data/ 

masterauth password  #主從認證密碼,否則主從不能同步,最好主從密碼一致

requirepass password  #訪問redis密碼

appendonly yes  #采用aof持久化

制作鏡像

cat Dockerfile
FROM redis
ADD  redis.conf /usr/local/etc/redis/redis.conf

docker build -t myredis .


docker run -d --name redis --restart always -p 6379:6379 -v /opt/redis/:/data myredis redis-server /usr/local/etc/redis/redis.conf
配置從庫
配置哨兵,配置文件,只需寫兩行,其他啟動后會自動不全配置文件
sentinel monitor mymaster 主ip 6379 1
sentinel auth-pass mymaster password

啟動哨兵

當主從自動切換后,哨兵的配置的配置文件也會自動改變   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM