《redis的pub/sub机制》

【redis pub/sub机制导读】上一节介绍了redis的哨兵机制,其中提到了哨兵集群,但是有很多细节没有深入,假设哨兵集群中有哨兵挂了,哨兵还能继续进行选主、通知、主从切换吗?在协商主库下线的时候,哨兵之间如何进行协商的?因为不同的哨兵位于不同的服务器上。

基于这些场景,redis推出了PUB/SUB(发布/订阅)的机制,何为发布/订阅机制?可以这么理解,redis服务A可以作为一个"广播站",redis服务B可以往redis服务A上发布消息,如果redis服务C想知道redis服务B的消息,那redis服务C可以往redis服务A上订阅消息。这就是发布/订阅的机制。

哨兵只要和主库建立起了连接,就可以在主库上发布消息了,比如:发布自己的IP和监听端口,同时它也可以从主库上订阅其它哨兵的IP和端口信息,哨兵集群中多个哨兵都往主库上发布、订阅消息,那么整个哨兵集群就能获取到彼此的IP和端口了,进而整个哨兵集群之间的交流和通信就不存在障碍了。

我们自己编写的业务程序也可以往redis上发布消息,因为消息的种类有很多,那么redis采用了频道的形式对消息做了区分,只有归属于同个频道的应用,才能通过发布消息进行消息的互换。

在主从集群中,主库上有一个名为“sentinel:hello”的频道,不同哨兵就是通过它来相互发现彼此,实现互相通信的。哨兵之间如何互相发现的,可以参考下图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值