一个80后
程序员的笔记

Docker配置redis集群启动哨兵模式

使用Docker在三台服务器上安装部署了1主2从3哨兵

192.168.140.197 master
192.168.140.198 slave
192.168.140.199 slave

安装Docker环境

创建配置文件存放目录

mkdir -p /data/disk/redis/data

下载Redis配置文件

cd /data/disk/redis/
wget http://download.redis.io/redis-stable/redis.conf

修改Redis.conf文件

# 修改bind  或者直接注释掉
bind 0.0.0.0
# 保护模式 配合bindip或者设置密码等访问 
protected-mode no
# redis密码
requirepass 123456
# redis日志地址
logfile "/data/redis.log"
# 主节点密码 建议与主节点保值一致,否则故障切换时密码错误导致不同步
masterauth 123456

# 在slave的节点配置上添加 master上不需要
# 主节点IP 主节点端口地址
replicaof 192.168.140.197 6379

创建并启动节点

docker run -d --restart=always --privileged=true -p 6379:6379 \
           -v /data/disk/redis/redis.conf:/etc/redis/redis.conf \
           -v /data/disk/redis/data:/data \
           --name redis redis:6.2.4 \
           redis-server /etc/redis/redis.conf \
           --appendonly yes

查看Redis状态

# 进入容器连接 redis客户端
docker exec -it redis redis-cli
# 输入密码
auth 123456
# 查看redis状态
info replication
# Master节点状态
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.140.199,port=6379,state=online,offset=1137958,lag=1
slave1:ip=192.168.140.198,port=6379,state=online,offset=1138098,lag=0
master_failover_state:no-failover
master_replid:8bbf12424cb844c55ef81eb0f677a68feef15ebf
master_replid2:9385ed583edd049d68454b2b42b05e7efe853594
master_repl_offset:1138098
second_repl_offset:1118607
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:364096
repl_backlog_histlen:774003
# Slave节点状态
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.140.197
master_port:6379
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:1154590
slave_priority:100
slave_read_only:1
replica_announced:1
connected_slaves:0
master_failover_state:no-failover
master_replid:8bbf12424cb844c55ef81eb0f677a68feef15ebf
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:1154590
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1137236
repl_backlog_histlen:17355

# 如果从节点 master_link_status的值为down 查看一下redis.conf中设置的密码对不对
# 主节点requirepass与从节点的masterauth是否一样,不一样修改一样重新启动

验证是否同步

# Master节点
set bbhsky 123456
# Slave节点
get bbhsky
# 如果能正确获取到 证明搭建没问题了

哨兵模式Sentinel部署

哨兵节点建议为奇数,我们在三个redis服务器上分别部署(建议:单独一台、或多台服务器部署)

创建配置目录

mkdir /data/disk/redis-sentinel/data

下载并修改配置文件



cd /data/disk/redis-sentinel/
wget http://download.redis.io/redis-stable/sentinel.conf

# Reids Sentinel日志地址
logfile "/data/sentinel.log"
# mymaster 可以修改为自己的名称 但是配置内所有名称都需要改掉
# Master 节点的地址 和端口   后面的2 代表有2个sentinel认为主节点失败时开始选举新的主节点
sentinel monitor mymaster 192.168.140.197 6379 2

创建并启动节点

# 如果是在一台机器上启动3个哨兵,需要修改端口  例如:-p 26379:26379  -p 36379:26379 -p 46379:26379,这时候容器名称也需要改变;
docker run -it --restart=unless-stopped --privileged=true \
           --name redis-sentinel -p 26379:26379 \
           -v /data/disk/redis-sentinel/data:/data \
           -v /data/disk/redis-sentinel/sentinel.conf:/usr/local/etc/redis/sentinel.conf \
           -d redis \
           redis-sentinel /usr/local/etc/redis/sentinel.conf

查看哨兵监控情况

# 进入容器连接 redis客户端
docker exec -it redis-sentinel redis-cli -p 26379
# 监控哨兵情况
127.0.0.1:26379> sentinel master mymaster
 1) "name"
 2) "mymaster"
 3) "ip"
 4) "192.168.140.197"
 5) "port"
 6) "6379"
 7) "runid"
 8) "7306162d9f6446b8f9baa91d1fd65064fba86cd6"
 9) "flags"
10) "master"
11) "link-pending-commands"
12) "0"
13) "link-refcount"
14) "1"
15) "last-ping-sent"
16) "0"
17) "last-ok-ping-reply"
18) "860"
19) "last-ping-reply"
20) "860"
21) "down-after-milliseconds"
22) "30000"
23) "info-refresh"
24) "38"
25) "role-reported"
26) "master"
27) "role-reported-time"
28) "1115196"
29) "config-epoch"
30) "3"
31) "num-slaves"
32) "2"
33) "num-other-sentinels"
34) "3"
35) "quorum"
36) "2"
37) "failover-timeout"
38) "180000"
39) "parallel-syncs"
40) "1"
# name 监控名称
# ip 主节点IP
# port 主节点端口
# num-slaves 当前有几个从节点
# num-other-sentinels 有几个哨兵
# quorum  有几个哨兵失败重新选举
# failover-timeout 切换时间 秒

赞(0) 打赏
未经允许不得转载:笨笨天地 » Docker配置redis集群启动哨兵模式
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏