Redis面试_5


title: Redis面试_5
date: 2019/7/28 20:28:53
tags: Redis面试_5
categories: 面试




使用PipeLine的好处

  • Pipeline和linux的管道类似,Redis从文本中读取数据到内存的时候,就用到了Pipline.
  • Redis基于请求/响应模型,单个请求处理需要一一应答. 正常情况下,客户端发送一个命令就要等待redis的应答,要是有很多请求,要等前面的执行结束才能执行下一个,这样效率会很低.
  • Pipeline批量执行指令,节省多次IO往返的时间,即允许客户端同时发送多条请求,不用等着上一条请求处理结束才能发送下一次请求.
    客户端首先会将要执行的命令存入缓存中,之后再一次性发送给Redis
  • 有顺序依赖的指令建议分批发送.

Redis的同步机制

主从同步原理
在这里插入图片描述
如图所示,一般都是一个Master(主服务器)进行写操作,多个slave(从服务器)进行读操作.

按照同步内容的多少可以分为全同步和增量同步.

全量同步过程

  1. slave发送sync命令到master.
  2. master启动一个后台进程,将Redis中的数据快照保存到文件中(也就是BGSAVE的过程).
  3. master将保存数据快照期间接收到的写命令(也就是增量数据,注意其实不只保存写命令到AOF,只是一般都是写命令,所以习惯性就叫写命令,更新语句都会保存)缓存起来.
  4. master完成第二步的写文件操作后,将该文件发送给slave.
  5. slave接收到文件后,就将文件保存到磁盘中,使用新的AOF文件替换掉旧的AOF文件,然后加载文件到内存中恢复数据快照.
  6. master将这期间收集的增量写命令发送给slave.
  7. 全量同步完成后,后续的所有写操作都是在master上进行,所有读操作都是在slave上进行.

增量同步过程

  1. master接收到用户的操作指令(增删改指令),执行操作函数判断是否需要传播到slave.
  2. 将操作记录追加到AOF文件(将操作转换为Redis内部的协议格式,并以字符串的形式存储).
  3. 将操作传播到其他slave,包括两步:
    1. 首先对齐主从库,确保从数据库是该操作对应的数据库.
    2. 往响应缓存写入指令,即将命令和参数按照redis的协议格式写入到响应slave的缓存中
  4. 将缓存中的数据发送给slave.

主从模式的弊端,就是不具备高可用性,当msater宕机之后,redis就不能对外提供写入操作了,这就有了Redis哨兵

Redis Sentinel

用于解决主从同步master宕机后的主从切换问题.

Redis哨兵是官方提供的集群管理工具,其本身就是一个独立运行的进程,他能监控多个master-slave集群,**发现master宕机之后,能进行自动切换.**其主要功能有如下几点:

  • 监控: 检查主从服务器是否运行正常.
  • 提醒: 通过API向管理员或者其他应用程序发送故障通知.
  • 自动故障迁移: 主从切换,即当一个服务器不能正常工作时,哨兵就会开始一次自动故障迁移操作,将失效的master下的一个slave升级为master.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值