docker下创建redis 哨兵集群

一. redis集群创建

 

1,redis集群配置文件

#端口
port 7001
#非保护模式
protected-mode no
#启用集群模式
cluster-enabled yes
cluster-config-file nodes.conf
#超时时间
cluster-node-timeout 5000
#集群各节点IP地址
cluster-announce-ip 192.168.0.1
#集群节点映射端口
cluster-announce-port 7001
#集群总线端口
cluster-announce-bus-port 17001
#开启aof持久化策略
appendonly yes
#后台运行
#daemonize yes
#进程号存储
pidfile /var/run/redis_7001.pid
#集群加密
#masterauth itheima
#requirepass itheima

2,docker启动容器,启动多个redis容器,端口指向不同地址,redis集群需要六个节点

docker run -d -p 7001:7001 
-v 上方的配置文件:/usr/local/etc/redis/redis.conf 
-v 数据存放地址:/data 
--privileged=true 
--restart always 
--name redis-7001  
redis redis-server /usr/local/etc/redis/redis.conf

3,启动容器后,随意进入一个容器,进行集群搭建

        ip:端口是各个redis节点,以逗号隔开。 --cluster-replicas 1 代表一主节点会有一个从节点

redis-cli --cluster create 172.17.0.3:7001 172.17.0.13:7002 172.17.0.14:7003 --cluster-replicas 1

看到如下信息,表示集群搭建完成

 查看节点信息,需要链接进入redis-cli

cluster nodes

 4,哨兵配置文件

表示执行 Sentinel 监控, mymaster 给当前监控取个名字,可以随意取, 172.17.0.3 7001,表示监听该主节点, 2
表示有 2 sentinel 主观( sdown )认为该节点宕机了,则该节点就编程下线状态( odown
port 17001
daemonize no
pidfile "/var/run/redis-sentinel.pid"
logfile ""
dir "/tmp"
sentinel myid b365dd35f434d11f894b59387a8a5c2b56561c5a
sentinel deny-scripts-reconfig yes
sentinel monitor mymaster 192.168.18.204 7001 2
sentinel config-epoch mymaster 0
sentinel leader-epoch mymaster 0

补充:构建redis-sentinel镜像Dockerfile文件

redis-6.0.15.tar.gz 下载地址 Redis

FROM centos:latest
ADD redis-6.0.15.tar.gz /
WORKDIR /redis-6.0.15
RUN yum install net-tools gcc make -y && make && make install && cp ./src/redis-server /bin/

        


版权声明:本文为qq_26226255原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。