Redis如何保证服务少中断?
- Redis通过增加副本的冗余量,也就是将一份数据同时保存在多个实例上,如果有一个实例出现了故障,其他实例也可以提供服务,不影响业务使用。
Redis 主要提供主从库模式,来保证数据副本的一致性,主从库之间采用的是读写分离的模式。
读操作 : 主库,从库都可以接收
写操作 : 首先到主库进行执行,之后通过写操作由主库同步给从库
主从库采用读写分离,所有数据的修改只会在主库上进行,不用协调三个实例。主库有了新的数据后,会同步给从库,这样,主从库的数据就是一致的。
主从库之间如何进行第一次同步
- 启动多个实例后,它们通过replicaof 命令形成主库和从库之间的关系,之后按照三个阶段完成数据的第一次同步
- 首先,从库给主库发送psync 命令表示要进行数据同步,主库根据这个命令的参数来启动复制。psync 包含了主库的runID 和复制进度 两个参数
runid
是redis 实例启动的时候随机生成的标志id ,从库和主库第一次建立连接,不知道主库的runid ,所以将runid 设置为 ?- 主库收到命令psync 命令后,会用fullre