从程序员到架构师:大数据量、缓存、高并发、微服务、多团队协同等核心场景实战
上QQ阅读APP看书,第一时间看更新

4.5 缓存的高可用设计

关于缓存高可用设计的问题,其实可以单独用一章来讲,但是考虑到Redis的用法介绍偏理论,本书主要讲场景,这里就不讲详细的用法了,只讲要点。

设计高可用方案时,需要考虑5个要点。

1)负载均衡:是否可以通过加节点的方式来水平分担读请求压力。

2)分片:是否可以通过划分到不同节点的方式来水平分担写压力。

3)数据冗余:一个节点的数据如果失效,其他节点的数据是否可以直接承担失效节点的职责。

4)Failover:任何节点失效后,集群的职责是否可以重新分配以保障集群正常工作。

5)一致性保证:在数据冗余、Failover、分片机制的数据转移过程中,如果某个地方出了问题,能否保证所有的节点数据或节点与数据库之间数据的一致性(依靠Redis本身是不行的)。

如果对缓存高可用有需求,可以使用Redis的Cluster模式,以上5个要点它都会涉及。关于Cluster的配置方法,可以参考Redis官方文档或其他相关教程。