redis哨兵模式配置

哨兵是特殊的redis服务,不提供读写服务,主要用来监听redis节点,哨兵模式下,客户端第一次通过哨兵代理访问redis主节点,后续继续访问主节点;
不会每次都通过sentinel代理访问主节点,当redis主节点发生变化,哨兵会第一时间感知到,并将新的主节点推送给客户端(redis客户端实现了订阅功能,订阅sentinel发布的节点变动消息)

哨兵是一个独立的进程;

原理:哨兵通过发送命令,等待 Redis 服务器响应,监控运行的多个 Redis 实例

哨兵的作用 : 通过发送命令,监控redis,使得 Redis 主从节点返回其运行状态

当哨兵监测到 master 宕机,自动将一个 slave 切换成 master ,然后通过发布订阅模式通知其他的从服务器,修改配置文件,让它们切换主机。

=======================多哨兵模式=====================

为了实现哨兵模式的高可用,采用多个哨兵进行监控;各个哨兵之间还会进行监控,这样就形成了多哨兵模式。

=======================故障切换(failover)=============

假设 :主服务器宕机,哨兵 1 先检测到这个结果,系统并不会马上进行 failover (故障切换)过程,仅仅是哨兵 1 主观的认为主服务器不可用,这个现象成为主观下线;

只有在后面的哨兵也检测到主服务器不可用,并且数量达到一定值时,那么哨兵之间就会进行一次投票,投票的结果由一个哨兵发起,进行 failover (故障切换)操作;

切换成功后,就会通过发布订阅模式,让各个哨兵将自己监控的从节点切换为主机,这个过程称为客观下线。

故障切换这一过程对于客户端而言是透明的;

=======================配置哨兵模式===================

配置3个哨兵和1主2从的Redis服务器来演示这个过程。

服务类型是否是主服务器IP地址端口

Redis 是 192.168.11.128 6379

Redis 否 192.168.11.129 6379

Redis 否 192.168.11.130 6379

Sentinel-192.168.11.1282 6379

Sentinel-192.168.11.1292 6379

Sentinel-192.168.11.1302 6379


=====================多哨兵监控 Redis ================

配置 Redis 的主从服务器,修改 redis.conf 文件如下,使得 Redis 服务器可以跨网络访问

bind 0.0.0.0

#指定目录下配置一份 sentinel.conf 文件(复制3份)

# 禁止保护模式 
protected-mode no

# 配置监听的主服务器,sentinel monitor 代表监控,mymaster 代表服务器的名称,192.168.11.128 代表监控的主服务器,6379代表端口,
2 代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行 failover 操作。
sentinel monitor mymaster 192.168.11.128 6379 2

# 启动 Redis 主从节点进程

./redis-server ../redis.conf

# 启动哨兵进程 :

./redis-sentinel ../sentinel.conf

注意启动的顺序。首先启动主机 Redis 主节点进程,然后启动从节点进程,最后启动 3 个哨兵的服务进程
### 信息查看
info sentinel 

# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=4,sentinels=3

# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=2,sentinels=3

# Sentinel
sentinel_masters:1
sentinel_tilt:0
sentinel_running_scripts:0
sentinel_scripts_queue_length:0
sentinel_simulate_failure_flags:0
master0:name=mymaster,status=ok,address=127.0.0.1:6379,slaves=4,sentinels=3

总结:

哨兵的含义就是监控 Redis 系统的运行状况,主要功能有两点 :

1、监控主数据库和从数据库是否正常运行

2、主节点出现故障后,可以自动将从节点转换为主节点,实现主从自动切换(故障切换)

哨兵模式存在的问题 :

1、资源浪费 --- 哨兵只是作为监控主从节点的运行状态而存在

2、选举主节点,完成主从节点切换,存在一定的延时(访问瞬断)

3、只有主节点能提供写,从节点只能读,只有一个节点对外提供服务,如果是大数据量情况下,远远不够用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值