高可用是通过设计,减少系统不能提供服务的时间,是分布式系统的基础也是保障系统可靠性的重要手段。而 Redis 作为一款普及率最高的内存型中间件,它的高可用技术也非常的成熟。
我们本课时的面试题是,Redis 是如何保证系统高可用的?它的实现方式有哪些?
回答:
Redis 高可用的手段主要有以下四种:
数据持久化
主从数据同步(主从复制)
Redis 哨兵模式(Sentinel)
Redis 集群(Cluster)
其中数据持久化保证了系统在发生宕机或者重启之后数据不会丢失,增加了系统的可靠性和减少了系统不可用的时间(省去了手动恢复数据的过程);而主从数据同步可以将数据存储至多台服务器,这样当遇到一台服务器宕机之后,可以很快地切换至另一台服务器以继续提供服务;哨兵模式用于发生故障之后自动切换服务器;而 Redis 集群提供了多主多从的 Redis 分布式集群环境,用于提供性能更好的 Redis 服务,并且它自身拥有故障自动切换的能力。
面试常考点分析
高可用的问题属于 Redis 中比较大的面试题了,因为很多知识点都和这个面试题有关