Redis(三)发布订阅、主从复制哨兵模式

一、Redis发布订阅

        通信时候会有消息队列,一个叫发送者,一个是订阅者。

        redis发布订阅是一种消息通信模式,发送者发送消息,订阅者接收消息;redis客户端可以订阅任意数量的频道。

        消息队列底层是redis-server维护的字典,本质是一个链表,字典中的键就是频道(也可以用reids的List来做消息队列)。

1.1 发布订阅的常用命令:

        Subscribe  频道名字:订阅频道,接收消息。

        Publish  频道名字  发送的消息  :发送消息。

1.2 发布订阅的原理:

        Redis是使用c实现的,通过redis源码里面的publish.c文件,了解发布和订阅机制的底层实现。

1.3 发布订阅的使用场景:

        1、实时消息系统。

        2、实时聊天(频道当作聊天室,将信息回显给所有人)。

        3、订阅关注系统。

作为消息中间件只会在简单的场景中使用,稍微复杂的场景就会用:消息中间件来做。

二、主从复制:

        概念:是指将一台redis服务器的数据,复制到其他的redis服务器,前者称为主节点,后者称为从节点,数据的复制是单向的,只能由主节点到从节点,Master以写为主,Slave以读为主。

        主从复制,读写分离,大部分的操作都是读操作,主节点中进行写操作,从节点中进行读操作,减缓服务器的压力,最低一主一从。默认情况下,每台redis都是主节点。

2.1 主从复制的作用主要包括:

        1、数据冗余:主从复制实现了数据的热备份,是持久化之外的一种数据冗余方式。

        2、故障恢复:当主节点出现问题时,可以由从节点提供服务,实现快速的故障恢复,实际上时一种服务的冗余。

        3、负载均衡:在主从复制的基础上,配合读写分离,可以由主节点提供写服务,从节点提供读服务。

        4、高可用(一般都是将集群情况下),主从复制还是哨兵和集群能够实施的基础,因此说主从复制时redis高可用的基础。

        公司中redis一般都是主从复制使用,不会单机使用。

2.2 复制原理:

        从节点(slave)启动成功连接到主节点(master)后会发送一个sync同步命令。

        主节点(master)接收到命令,启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,主节点(master)将传送这个文件到从节点(slave),并完成一次完全同步。

2.3 主从复制的配置:

        配置redis的主从复制可以通过在redis的配置文件中去配置,因为redis默认每台都是主节点,只需要在配置文件中配置为从节点,在配置文件中的配置是可以保持长久有效的。当然也可以在linux中使用命令去配置,只不过这种命令配置在redis服务关闭之后就会被重置。

2.4 主从配置的特点以及弊端:

        配置了主从配置之后,主节点的redis只负责写操作,从节点的redis则负责读的操作,可以使得读写分离,使得系统的性能更加好。

        但是这种配置的缺点就是:当主节点的redis宕机之后,我们的整个redis集群就相当于失去的写的功能,虽然读操作还是可以正常使用的,但是对我们的正常使用造成很大的影响,这种情况下如果要恢复写的功能,需要去手动配置。

        为了解决这种问题,我们通常在redis集群中使用哨兵模式。

三、哨兵模式

        在哨兵模式中,当redis的主节点挂掉之后,集群会自动选举出新的主节点,传统的主从切换方法是:当主机宕机后,需要手动把一台服务器切换为主服务器,这就需要人工干预,还会造成一段时间内写操作不可用,因此更多时候,我们选择使用哨兵模式,redis2.8开始正式提供Sentinel哨兵框架来解决这个问题。

        哨兵模式中,哨兵可以后台监控主机是否故障,如果故障了根据投票数,将票数最多的转为主库。哨兵模式是一种特殊的模式,首先redis提供了哨兵命令,哨兵是一个独立的进程,作为进程,它会独立运行

其原理是:哨兵通过发送命令,等待redis服务器响应,从而监控运行多个redis实例

        

        但是单机哨兵万一出现宕机的情况,也会很麻烦,所以我们一般也会给哨兵配置集群,除了监控redis服务器之外,哨兵之间也会相互监控

 若确定主机挂掉,哨兵会从剩下的从中选举,哨兵进行投票,选举票数最多的作为新的主

哨兵模式的优缺点:

        优点:

                1、哨兵集群,基于主从复制模式,所有的主从配置的优点,他都有

                2、主从可以切换,故障可以转移,系统的可用性更好

                3、哨兵模式就是主从复制模式的升级,手动到自动

        缺点:

                1、redis不好在线扩容,集群容量一旦到达上限,在线扩容十分麻烦

                2、实现哨兵模式的配置是很麻烦的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值