Redis专题详细教程(三)

Redis发布订阅

Redis发布订阅是一种消息通信模式,发送者发送消息,订阅者接收消息。微信,微博,关注系统
Redis客户端可以订阅任意数量的频道
在这里插入图片描述

通过PUBLISH命令向订阅者发送消息,redis-server会使用给定的频道作为键,在它所维护的channel字典中查找记录了订阅这个频道的所有
客户端的链表,遍历这个链表,将消息发布给所有的订阅者

pub/Sub从字面理解就是发布与订阅,在redis中,你可以设定对某一个key值进行消息发布以及消息订阅,当一个key值上进行了消息发布后,
所有订阅它的客户端都会收到相应的消息,这一功能最明显的用法就是作为实时消息
系统,比如普通的即时聊天,群聊等功能


使用场景:
1.实时消息系统
2.实时聊天
3.订阅,关注系统
稍微复杂的系统都会使用消息中间件来做!

Redis主从复制

在这里插入图片描述
主从复制,读写分离!80%的情况都是进行读操作!减缓服务器压力!架构中经常使用,一主二从,项目中不可能单机使用Redis!

环境配置
只配置从库,不配置主库!
复制三个配置文件,修改相应的信息:

1.端口
2.pid名字
3.log文件名字
4.dump.rdb名字

redis-server 配置文件路径 命令来分别启动三个服务,可以通过进程信息查询

配置一主二从
默认情况下,每台redis服务器都是主节点(使用 info replication命令查看机器主从类型);一般情况下只需要配置从机就好了!

SLAVEOF 127.0.0.1	6379 	#配置	127.0.0.1	6379这台机器为主机,当前机器为从机

在从机中查看:
在这里插入图片描述
在主机中查看:
在这里插入图片描述

真实的主从搭建需要修改配置文件搭建,使用命名配置只是暂时的!配置如下:

replicaof 主机地址 主机端口
masterauth 主机密码(无密码则不用配置该命令)

主机可以写,从机只能读!所有主机中的信息和数据,都会被从机自动保存
主机断开连接,从机依旧是连接到主机的,但是没有写操作了,如果主机连接上了,从机依旧可以获取到主机的数据和信息
如果是使用命令行配置的主从,从机断开然后重启,就会变成主机,只要变为从机,立马可以从主机中获取数据

复制原理
在这里插入图片描述
层层链路
上一个主节点链接下一个从节点,层层链接,也可以实现主从复制!

如果主机断开了连接,我们可以使用SLAVEOF no one让自己变成主机,其他的节点就可以手动连接到最新的这个节点(手动)!
如果这个时候原来的主机修复了,那就重新连接!需要手动重新设置从节点!
(以上主从复制工作中不会使用!)

(重点)哨兵模式
自动选取主节点的模式!
在这里插入图片描述
哨兵的两个作用:

1.通过发送命令,让redis服务器返回监控的运行状态,包括主服务器和从服务器
2.当哨兵监测到主机宕机,会自动将从机切换到主机,然后通过发布订阅模式通知其他从机,修改配置文件,让它们切换主机。

然而一个哨兵进程对redis服务器进行监控,可能会出现问题,为此,我们可以使用多个哨兵进行监控,各个哨兵还可以互相进行监控,这样就形成了多哨兵模式!

在这里插入图片描述
测试:

1.配置哨兵配置文件sentinel.conf
sentinel monitor myredis 127.0.0.1 6379 1		#myredis为被监控的名字,后面这个数字1,代表如果主机挂了,从机投票让谁成为主机
2.启动哨兵(命令:redis-sentinel kconfig/sentinel.conf)

如果主机节点断开了,此时就会从从机中随机选择一个服务器(投票算法),从哨兵的日志中可以看到新主机是哪个!如果之前的主机重新连接,只能归并到新主机下当做从机!

优点:
1.哨兵集群,基于主从复制,所有的主从配置优点全都有
2.主从可以切换,故障可以转移,系统的可用性就会更好
3.哨兵模式就是主从模式的升级,手动到自动
缺点:
1.redis不好在线扩容,集群容量到达上限,扩容就很麻烦
2.实现哨兵模式配置很麻烦,里面有很多配置选择 

哨兵模式的全部配置内容:
![在这里插入图片描述](https://img-blog.csdnimg.cn/d418bfa243f14998ad5a412f3b6942ed.png?x-oss-process=image/watermark,在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值