背景

Redis具有高可用行,高可用有两层含义:一是数据尽量少丢失,二是服务尽量少中断。AOF和RDB保证了前者,对于后者,redis的做法就是增加副本冗余量,将一份数据同时保存在多个实例上,即使有一个实例出现了故障,需要一段时间才能恢复,其他的实例也可以对外提供服务,不会影响业务使用。

原理

redis提供了主从库模式,以保证数据副本的一致,主从库之间采用的就是读写分离的方式。

  • 读操作:主库、从库都可以接收;
  • 写操作:首先到主库执行,然后,主库将写操作同步给从库。

redis主从复制的读写分离

如果主从库都能接收客户端的写操作,就会导致主从库的数据不一致,除非使用加锁等操作,但是加锁会带来巨额的开销。