先设置3个redis数据库
准备好一主二从。
如何设置主从?
在redis.conf文件里
大概480行左右的范围,按以下内容设置
replica-announce-ip 192.168.200.104
replica-announce-port 6390
replicaof 192.168.200.104 6389
slave-read-only yes
第一行是你的redis复制节点的ip地址
第二行是从redis 名字
第三行是主redis的ip与名称,用于让从进行连接备份用
第四行是从的读写权限。
然后运行从容器
docker run -it \
--name redis_6390 \
--privileged \
-p 6390:6379 \
--network wn_docker_net \
--ip 172.18.12.81 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/redis/6390/conf/redis.conf:/usr/local/etc/redis/redis.conf \
-v /usr/local/software/redis/6390/data/:/data \
-v /usr/local/software/redis/6390/log/redis.log:/var/log/redis.log \
-d redis \
/usr/local/etc/redis/redis.conf
注意里面的参数要修改成符合自己设置的redis。
以此为例要启动所有你设置的从容器。
然后设置哨兵,也与上面一样要有1主二从。
在software里创建sentinel文件,并创建相应的哨兵文件夹
例如26389 26390 26391
在这些文件夹里创建conf文件夹,并创建sentinel.conf。
在sentinel.conf里设置下面的文件信息
# 所以无需担心端口重复使用 # 如果需要在单机 port 26389
# 设定密码认证 # requirepass 123456
# 配置哨兵的监控参数 # 格式:sentinel monitor <master-name> <ip> <redis-port> <quorum> # master-name是为这个被监控的master起的名字 # ip是被监控的master的IP或主机名。因为Docker容器之间可以使用容器名访问,所以这里写master节点的容器名 # 此处填写宿主机(linux)的ip地址 # redis-port是被监控节点所监听的端口号 # quorom设定了当几个哨兵判定这个节点失效后,才认为这个节点真的失效了 sentinel monitor redis_6389 192.168.254.133 6389 2
# 连接主节点的密码 # 格式:sentinel auth-pass <master-name> <password> # sentinel auth-pass local-master 123456
# master在连续多长时间无法响应PING指令后,就会主观判定节点下线,默认是30秒 # 格式:sentinel down-after-milliseconds <master-name> <milliseconds> sentinel down-after-milliseconds redis_6389 30000
三个conf都要这么设置,里面的内容从容器只修改port 26389。
最后运行哨兵容器就完工了
docker run -it \
--name sentinel_26389 \
--privileged \
--network wn_docker_net \
--sysctl net.core.somaxconn=1024 \
--ip 172.18.12.90 \
-p 26389:26389 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/software/sentinel/26389/conf:/user/local/etc/redis/conf/ \
-d redis \
redis-sentinel /user/local/etc/redis/conf/sentinel.conf
也是要运行三次。