学海无涯
go,go,go

redis哨兵模式

#基于之前搭建好的redis主从复制搭建哨兵模式
#配置哨兵前确认主从配置文件没有错误
,配置的主从密码要相同主从配置文件都要加密码配置
主1配置文件
cat >/nosql/6379/redis.conf<<'EOF'
daemonize yes
port 6379
logfile /var/log/redis.log
dir /nosql/6379
dbfilename dump.rdbRDB
requirepass qwe123
masterauth qwe123
bind 0.0.0.0
save 900 1
save 300 10
save 60 10000
EOF

从1配置文件
cat >/nosql/6379/redis.conf<<'EOF'
daemonize yes
port 6379
logfile /var/log/redis.log
dir /nosql/6379
dbfilename dump.rdbRDB
requirepass qwe123
bind 0.0.0.0
save   900      1
save   300      10
save   60       10000
SLAVEOF 192.168.2.115 6379
masterauth qwe123
EOF

从2配置文件
cat >/nosql/6379/redis.conf<<'EOF'
daemonize yes
port 6379
logfile /var/log/redis.log
dir /nosql/6379
dbfilename dump.rdbRDB
requirepass qwe123
bind 0.0.0.0
save   900      1
save   300      10
save   60       10000
SLAVEOF 192.168.2.115 6379
masterauth qwe123
EOF

在主从都搭建哨兵,实现选举新主,生产环境建议主从都搭redis-sentinel(哨兵)
在主从都操作
mkdir /nosql/26380
cd /nosql/26380

主库和从库添加配置文件
cat >/nosql/26380/sentinel.conf<<'EOF'
protected-mode no
daemonize yes
port 26380
dir "/nosql/26380"
sentinel monitor mymaster 192.168.2.115 6379 2
sentinel down-after-milliseconds mymaster 5000 
sentinel failover-timeout mymaster 15000
logfile  /var/log/redis/sentinel.log
pidfile  /var/run/sentinel.pid
sentinel auth-pass mymaster qwe123
EOF

配置文件说明
port 26380端口号
dir "/nosql/26380"存放配置文件目录
sentinel monitor mymaster 192.168.2.115 6379 2 指定主库为192.168.2.115端口6379,2代表当集群中有2个sentinel认为master死了时,才能真正认为该master已经不可用了
sentinel down-after-milliseconds mymaster 5000 指定多少毫秒之后 主节点没有应答哨兵sentinel 此时 哨兵主观上认为主节点下线 默认5秒
logfile  /var/log/redis/sentinel.log 指定日志文件
pidfile  /var/run/sentinel.pid 指定pid文件
sentinet failover-timeout mymaster 15000 当进行failover时,配置所有slaves指向新的master所需的最大时间。不过,即使过了这个超时,slaves依然会被正确配置为指向master,但是就不按parallel-syncs所配置的规则来了。
protected-mode no关闭保护模式

主库和从库配置并且启动哨兵
mkdir -p /var/log/redis/
touch /var/log/redis/sentinel.log
redis-sentinel /nosql/26380/sentinel.conf &

3台节点检查端口
[root@web02 26380]# ss -lnt|grep 26380
LISTEN     0      511          *:26380                    *:*                  
LISTEN     0      511         :::26380                   :::* 
停止主库测试
[root@web04 26380]# redis-cli -a qwe123 shutdown
[root@web04 26380]# ss -lnt|grep 6379

在从库1检查
[root@centos7 26380]# redis-cli -a qwe123
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.2.212 新主变成了192.168.2.212
master_port:6379
master_link_status:up
master_last_io_seconds_ago:1
master_sync_in_progress:0
slave_repl_offset:57521
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

在从库2检查
[root@web02 26380]# redis-cli -a qwe123
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.2.210,port=6379,state=online,offset=60510,lag=1
master_repl_offset:60933
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:60932
从库2自己变成了新主库

启动原主库
[root@web04 26380]# redis-server /nosql/6379/redis.conf &
[1] 11014
[root@web04 26380]# redis-cli -a qwe123
登陆检查
127.0.0.1:6379> info replication
# Replication
role:slave
master_host:192.168.2.212
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:1
master_link_down_since_seconds:1565946442
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
自动把主切换到了新主上面,并且变成了从库

新主检查
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.2.210,port=6379,state=online,offset=116028,lag=1
slave1:ip=192.168.2.115,port=6379,state=online,offset=116028,lag=1
master_repl_offset:116169
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:2
repl_backlog_histlen:116168

重启redis方法
redis-cli -a qwe123 shutdown && redis-server /nosql/6379/redis.conf &

重启sentinel方法
killall redis-sentinel
redis-sentinel /nosql/26380/sentinel.conf &
赞(0) 打赏
未经允许不得转载:YYQ运维技术博客_运维的工作学习之路 » redis哨兵模式
分享到: 更多 (0)

评论 抢沙发

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

运维devops

联系我们关于本博客

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

支付宝扫一扫打赏

微信扫一扫打赏