随着业务的不断发展和扩张我们需要更加稳定和高效的 Redis 服务,这是业务发展的必然趋势也是个人能力进阶的最高境界,我们需要一个高可用的 Redis 服务,来支撑和保证业务的正常运行。
我们本文的面试题是,如何设计一个不宕机的 Redis 高可用服务?
典型回答
想要设计一个高可用的 Redis 服务,那么一定要从 Redis 的多机功能来考虑,比如 Redis 的主从、哨兵以及 Redis 集群服务。
主从同步 (主从复制) 是 Redis 高可用服务的基石,也是多机运行中最基础的一个,它是将从前的一台 Redis 服务器,变为一主多从的多台 Redis 服务器,这样我们就可以将 Redis 的读写分离,而这个 Redis 服务器也能承载更多的并发操作。
Redis Sentinel(哨兵模式)使用监控 Redis 主从服务器的,当 Redis 的主从服务器出现问题时,可以利用哨兵模式自动的实现容灾恢复。
Redis Cluster(集群)是 Redis 3.0 版本中推出的 Redis 集群方案,它是将数据分布在不同的服务器上,以此来降低系统对单主节点的依赖,并且可以大大的提高 Redis 服务的读写性能。Redis Cluster 拥有所有主从同步和哨兵的所有优点,并且可以实现多主多从的集群服务,相当于将单台 Redis 服务器的性能平行扩展到了集群中,并且它还有自动容灾恢复的功能。
考点分析
Redis 多机知识是应聘中级和高级必问的知识点,它虽然看起来很高大上,其实它的概念却很好理解,并且 Redis 也提供了方便的多机构建的方案,例如 Redis 只需要一个命令就可以迅速的构建出一个集群服务等。
和此知识点相关的