Redis主从架构
一、Redis搭建主从架构 ----实现读写分离
单节点Redis并发能力有上限,目的是为了提高Redis的并发能力
好处
- 读的性能提升很大
- 提供数据的容灾备份(主服务器损害,仍然有数据备份)
二、 linux搭建redis主从
三、 主从数据同步
主从的第一次同步是全量同步,基于RDB进行数据恢复,其他的为增量同步
3.1 数据全量同步过程
- slave发起同步请求 :
- salve和master建立主从
- salv重启
- master判断是进行 全量同步? or 增量同步?
全量 : 判断replid
增量 : 判断offset
客户端继续进行各种写操作,master会将这些指令放入复制缓冲区(repl_baklog),然后把指令通过网络同步到slave。实时同步
如何实现实时同步?
基于复制缓冲区,检测master和slave之间的数据差异有多大,正常情况下二者偏移量一致,判断slave最后一次偏移量是否落在master当前偏移量区间范围内,若不在,则重新生成快照,进行全量同步
3.2 如何判断是不是第一次同步(全量同步)
- replication id : 首次发起同步请求时时,master会把自己的唯一标识replid给slave,打上标记(slave每次都会携带replid,但是首次没有)
- offset : 来一个指令,往前怼一个,缓冲区有大小限制,偏移量会随之递增