若有收获,请记得分享和转发哦
前言
今天跟小伙伴们一起学习Redis的主从、哨兵、Redis Cluster集群。
Redis主从
Redis哨兵
Redis Cluster集群
1. Redis 主从
面试官经常会问到Redis的高可用。Redis高可用回答包括两个层面,一个就是数据不能丢失,或者说尽量减少丢失;另外一个就是保证Redis服务不中断。
对于尽量减少数据丢失,可以通过AOF和RDB保证。
对于保证服务不中断的话,Redis就不能单点部署,这时候我们先看下Redis主从。
1.1 Redsi主从概念
Redis主从模式,就是部署多台Redis服务器,有主库和从库,它们之间通过主从复制,以保证数据副本的一致。
主从库之间采用的是读写分离的方式,其中主库负责读操作和写操作,从库则负责读操作。
如果Redis主库挂了,切换其中的从库成为主库。
1.2 Redis 主从同步过程
![6b793b0a4973d77c4a324f57982d5d0e.png](https://i-blog.csdnimg.cn/blog_migrate/1c0b8644b3fdc52676934a0996099d95.png)
Redis主从同步包括三个阶段。
第一阶段:主从库间建立连接、协商同步。
从库向主库发送
psync
命令,告诉它要进行数据同步。主库收到
psync
命令后,响应FULLRESYNC
命令(它表示第一次复制采用的是全量复制),并带上主库runID
和主库目前的复制进度offset
。
第二阶段:主库把数据同步到从库,从库收到数据后,完成本地加载。
主库执行
bgsave
命令,生成RDB
文件,接着将文件发给从库。从库接收到RDB
文件后,会先清空当前数据库,然后加载 RDB 文件。主库把数据同步到从库的过程中,新来的写操作,会记录到
replication buffer
。