centos7自学之9-redis主从哨兵模式

主从概念描述

主:写入

从:读取

主从分离能够显著提高redis数据库的负载能力

哨兵模式:能够监控主从服务,主服务宕掉,从服务能够立马被选举成主服务

实现

本文实现redis主从服务的“一主二从三哨兵”模式。

master  172.16.191.102:6379
slaver1 172.16.191.102:6380
slaver2 172.16.191.102:6381
  1. redis单例的安装请参考之前的博客centos7自学之7-redis-4.0.1单例服务器搭建。依次在三个服务器分别安装好单机redis
  2. 分别修改/usr/local/redis 下redis.conf文件的port,改成6380,6381
  3. 修改daemonize yes,方便后台启动redis服务
  4. 修改从服务器(172.16.191.102:6380,172.16.191.102:6381)redis.conf

    slaveof 192.168.216.157 6379

  5. 将bind 127.0.0.1改为# bind 127.0.0.1 允许外部设备连接

分别用如下命令启动三台redis服务

/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf

这里写图片描述

配置哨兵

修改sentinel.conf

daemonize yes  # 后台启动
port 26379
# 保护模式 no
protected-mode no

# Sentinel去监视一个名为mymaster的主redis实例,
# 这个主实例的IP地址为本机地址127.0.0.1,端口号为6379,
# 而将这个主实例判断为失效至少需要2个Sentinel进程的同意,只要同意Sentinel的数量不达标,自动failover就不会执行
# 如果提供外网访问,实例的IP地址为服务器地址127.0.0.1。
sentinel monitor mymaster 127.0.0.1 6379 2

# down-after-milliseconds指定了Sentinel认为Redis实例已经失效所需的毫秒数。
# 当实例超过该时间没有返回PING,或者直接返回错误,那么Sentinel将这个实例标记为主观下线。
# 只有一个Sentinel进程将实例标记为主观下线并不一定会引起实例的自动故障迁移:只有在足够数量的Sentinel都将一个实例标记为主观下线之后,实例才会被标记为客观下线。
# 这时自动故障迁移才会执行
sentinel down-after-milliseconds mymaster 5000

# parallel-syncs指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,
# 在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
sentinel parallel-syncs mymaster 1

# 如果在failover-timeout该时间(ms)内未能完成failover操作,则认为该failover失败
sentinel failover-timeout mymaster 15000

用如下命令启动哨兵

/usr/local/redis/bin/redis-sentinel /usr/local/redis/bin/sentinel.conf

这里写图片描述

测试

连接主服务6379

redis-cli -p 6379

auth 123456
set TO:name hehe
get TO:name

这里写图片描述

可以看见主添加上之后,从库也自动添加上,主库删除,从库也会自动删除

按照以上步骤即可完成redis哨兵模式的部署。

猜你喜欢

转载自blog.csdn.net/u012806787/article/details/81167279