linux之docker启动redis哨兵模式集群


docker启动redis哨兵模式集群

1.部署前提

安装好docker环境,教程:Linux的centos7安装docker
有三个服务器,192.168.56.102,192.168.56.105,192.168.56.106

2.参数说明

redis的最原始版sentinel.conf配置文件关键信息详细说明

3. 配置文件

1)新增redis_master.conf文件和redis_slave.conf文件

创建文件 redis_master.conf

vim /usr/local/docker/redis/conf/redis_master.conf

redis_master.conf 文件内容

# 绑定
bind 0.0.0.0
#后台模式关闭,因为redis-server的运行后台和docker的后台模式冲突
daemonize no
# 连接保护模式关闭
protected-mode no
# 端口
port 6379
# 守护进程关闭
supervised no
# 数据库数量
databases 16
# rdb快照规则
# 在900秒(15分钟)后,如果至少更改了1个键
save 900 1
save 300 10
save 60 10000
# rdb快照文件名称
dbfilename dump.rdb
# 客户端连接数量设置
maxclients 10000
# AOF模式开启,默认关闭
appendonly yes
# 文件名
appendfilename "appendonly.aof"
# AOF同步机制 
# 每秒同步
appendfsync everysec
# 文件大小切割
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 淘汰机制设置
maxmemory-policy noeviction

#密码设置
requirepass 123456
# 连接主机密码
masterauth 123456

二从机配置文件创建文件 redis_slave.conf

vim /usr/local/docker/redis/conf/redis_slave.conf

redis_slave.conf 文件内容,在主机的redis_master.conf的配置之上再加多下面的配置

# 主机地址
replicaof 192.168.56.102 6379
masterauth 123456

2)新增sentinel.conf文件

vim /usr/local/docker/redis/conf/sentinel.conf

sentinel.conf文件内容,三台服务器都是一样的配置文件

bind 0.0.0.0
# 端口号
port 26379
# 关闭保护模式
protected-mode no
# 开启后台运行
daemonize yes
#日志
logfile "/data/sentinel.log"

# 配置监听的主服务器,sentinel monitor代表监控,mymaster代表服务器名称(自己定义),192.168.56.102代表监控的主服务器,6379代表端口,2代表只有两个或者两个以上的哨兵认为主服务器不可以用的时候,才会进行failover操作
sentinel monitor mymaster 192.168.56.102 6379 2
# sentinel auth-pass定义服务的密码,mymaster是服务名称,123456是密码
sentinel auth-pass mymaster 123456
# 设置主机多少秒无应答,就认为下线
sentinel down-after-milliseconds mymaster 30000
# 主备切换时,最多有几个slave同时对新的master进行同步,默认是1
sentinel parallel-syncs mymaster 1
# 故障转移
sentinel failover-timeout mymaster 180000

4.启动redis哨兵

主机:

docker run \
--restart=always \
--name redis-master \
--network host \
-v /usr/local/docker/redis/conf/redis_master.conf:/etc/redis/redis.conf \
-v /usr/local/docker/redis/conf/sentinel.conf:/etc/redis/sentinel.conf \
-v /usr/local/docker/redis/data:/data \
-v /etc/localtime:/etc/localtime \
-d redis:6.0.9 sh -c " redis-sentinel /etc/redis/sentinel.conf && redis-server /etc/redis/redis.conf"

从机1:

docker run \
--restart=always \
--name redis-slave-1 \
--network host \
-v /usr/local/docker/redis/conf/redis_slave.conf:/etc/redis/redis_slave.conf \
-v /usr/local/docker/redis/conf/sentinel.conf:/etc/redis/sentinel.conf \
-v /usr/local/docker/redis/data:/data \
-v /etc/localtime:/etc/localtime \
-d redis:6.0.9 sh -c " redis-sentinel /etc/redis/sentinel.conf && redis-server /etc/redis/redis_slave.conf"

从机2:

docker run \
--restart=always \
--name redis-slave-2 \
--network host \
-v /usr/local/docker/redis/conf/redis_slave.conf:/etc/redis/redis_slave.conf \
-v /usr/local/docker/redis/conf/sentinel.conf:/etc/redis/sentinel.conf \
-v /usr/local/docker/redis/data:/data \
-v /etc/localtime:/etc/localtime \
-d redis:6.0.9 sh -c " redis-sentinel /etc/redis/sentinel.conf && redis-server /etc/redis/redis_slave.conf"

5.检查

[root@centos-102 /usr/local/docker/redis]docker exec -it redis-master bash -c "redis-cli -p 6379"
127.0.0.1:26379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.56.105,port=6379,state=online,offset=94387,lag=1
slave1:ip=192.168.56.106,port=6379,state=online,offset=94387,lag=1
master_replid:8c0b459d60cac34e30f08de4ed0ee2e122c498c7
master_replid2:589bedce125ef4edda3a24b03ae1c54894315f30
master_repl_offset:94387
second_repl_offset:22080
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:94387
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

binggoling

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值