前言
之前我们提到,为了保证Redis的高可用,主要需要以下几个方面:
- 数据持久化
- 主从复制
- 自动故障恢复
- 集群化
我们简单理一下这几个方案的特点,以及它们之间的联系。数据持久化本质上是为了做数据备份,有了数据持久化,当Redis宕机时,我们可以把数据从磁盘上恢复回来,但在数据恢复之前,服务是不可用的,而且数据恢复的时间取决于实例的大小,数据量越大,恢复起来越慢。
Redis的持久化过程可以参考:Redis持久化是如何做的?RDB和AOF对比分析。而主从复制则是部署多个副本节点,多个副本节点实时复制主节点的数据,当主节点宕机时,我们有完整的副本节点可以使用。另一方面,如果我们业务的读请求量很大,主节点无法承受所有的读请求,多个副本节点可以分担读请求,实现读写分离,这样可以提高Redis的访问性能。
Redis主从复制的原理可以参考:Redis的主从复制是如何做的?复制过程中也会产生各种问题?。但有个问题是,当主节点宕机时,我们虽然有完整的副本节点,但需要手动操作把从节点提升为主节点继续提供