尚硅谷学习笔记---Redis消息发布订阅&Redis的复制(master/Slave)

Redis消息发布订阅

  • 是什么?

  • 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

  • 常用命令

命令语法说明
SUBSCRIBESUBSCRIBE channel [channel …]订阅给定的一个或多个频道的信息。
PSUBSCRIBEPSUBSCRIBE pattern [pattern …]订阅一个或多个符合给定模式的频道。
PUBLISHPUBLISH channel messagePUBLISH channel message 将信息发送到指定的频道。
UNSUBSCRIBEUNSUBSCRIBE [channel [channel …]]指退订给定的频道。
PUNSUBSCRIBEPUNSUBSCRIBE [pattern [pattern …]]退订所有给定模式的频道。
PUBSUBPUBSUB subcommand [argument [argument …]]查看订阅与发布系统状态。
  • 第一个客户端:订阅一个名为"maoshu"频道

在这里插入图片描述

  • 第二个客户端:向"maoshu"频道发送消息

在这里插入图片描述

  • 第一个客户端:接受到"maoshu"频道发送的消息

在这里插入图片描述

Redis的复制(Master/Slave)

  • 是什么?

  • 行话:也就是我们所说的主从复制,主机数据更新后根据配置和策略,
    自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主

  • 能干嘛?

  1. 读写分离:减轻同一台服务器执行sql的负担
  2. 容灾恢复:防止数据丢失导致系统奔溃
  • 复制原理
    1. slave启动成功连接到master后会发送一个sync命令
    2. Master接到命令启动后台的存盘进程,同时收集所有接收到的用于修改数据集命令,在后台进程执行完毕之后,master将传送整个数据文件到slave,以完成一次完全同步
    3. 全量复制:而slave服务在接收到数据库文件数据后,将其存盘并加载到内存中。
    4. 增量复制:Master继续将新的所有收集到的修改命令依次传给slave,完成同步
    5. 但是只要是重新连接master,一次完全同步(全量复制)将被自动执行

配置

  1. 命令设置
命令语法说明
slaveofslaveof 目标主机ip 目标主机端口临时设置链接一个主服务器,从主服务器中复制数据
info replicationinfo replication查看当前服务器连接信息
slaveof no oneslaveof no one断开连接主服务器
requirepassrequirepass数据较重要的节点,主从复制时使用密码验证:
  1. 配置文件设置
  • 在从服务器中的redis.conf文件中加入
 slaveof  slaveof 目标主机ip 目标主机端口

在主服务器启动完后再启从服务器,完成配置;

  • 模拟一主二仆

在这里插入图片描述

  • 主服务器(端口:6379)添加五个数据

在这里插入图片描述

  • 从服务器(6380/6381)获取参数

在这里插入图片描述

在这里插入图片描述

  • 当主服务器停止运行之后,从服务器会静止等待,直到主服务器重新连接.
  • 当从服务器停止运行之后,如果没有设置配置文件,从服务器会变为主服务器,需要重新进行连接.

哨兵模式

  • 当主服务器宏机之后,需要手动设置一台从服务器来作为主服务器才能够正常运作,这需要人工手动配置,很不方便,所以一般会使用哨兵模式自动进行修改.

  • 反客为主的自动版,能够后台监控主机是否故障,如果故障了根据投票数自动将从库转换为主库

  • 模拟三个哨兵

  • 复制redis目录下的sentinel.conf文件三份,修改sentinel.conf中的配置

  • 配置监听的主服务器,这里sentinel monitor代表监控,mymaster代表服务器的名称,可以自定义,“目标主机地址” 代表监控的主服务器,"目标端口"代表端口,2代表只有两个或两个以上的哨兵认为主服务器不可用的时候,才会进行failover操作。
    sentinel monitor mymaster 192.168.11.128 6379 2

  • 设置 哨兵启动端口号 ,由于在同一机子上启动三个哨兵,所以需要使用不同的端口号

port 哨兵启动端口号
sentinel monitor mymaster 目标主机地址  目标端口 2
  • 三个哨兵配置文件除了端口号不同之外,其他都相同

  • 分别启动三个哨兵(启动顺序为:主服务器—>从服务器—>哨兵)

# 启动哨兵进程
./redis-sentinel ../sentinel-79.conf
./redis-sentinel ../sentinel-80.conf
./redis-sentinel ../sentinel-81.conf
  • 当主服务器关闭之后

在这里插入图片描述

  • 过段时间哨兵会监控到主服务器已经挂了,就会在剩下两台服务器之中挑选出一台作为主服务器

在这里插入图片描述

  • 而其他从服务器自动将主服务器连接更换为新的主服务器

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值