Redis 如何实现高可用的?
之前学的两篇文章中,我们得知,当 Redis 数据库发生宕机的时候,我们可以采取重新读取 RDB 文件或者回放 AOF 日志的两种方式实现数据恢复。而 Redis 主打的就是高可用,然而为了实现数据库的高可用除了实现数据尽量少丢失以外,还要实现服务尽量少断开。
1、Redis 如何实现服务尽量少断开?
Redis 采用增加副本冗余量的方式(创建多个从库)来实现的,一般情况下,客户端的请求会在主库上执行,然而为了避免当主库宕机后,需要进行数据的恢复,然而在数据恢复期间无法提供服务,因此 Redis 将同一个数据保存在多个实例上,创建了多个从库,当主库宕机的时候,其他的实例可以提供服务,为数据库的恢复争取了时间。
2、Redis 如何实现主从数据同步的?
Redis 提供了主从库模式,将数据库上的操作的同步进行了读写分离的方式,数据的读操作可以同时发送到主库和从库上,而写操作会先在主库上执行,然后再由主库将写操作同步到从库上。
3、为什么 Redis 在实现主从同步的时候,采取读写分离的措施?
如果当多个将对某个数据的多个写操作交给不同的实例执行,那么就会让不同实例上的数据不一致,使得某些实例上保存的是旧的值,为了实现主从库的数据一致性,因此选择将写操作在主库上执行,然后再让主库同步写操作到各个从库上。