Redis高可用解决方案

1、Redis单副本

缓存使用时无需备用节点,同一时刻只有一个实例对外提供服务。不保证数据的可靠性。

2、Redis多副本(主从)

对比单副本最大特点是主从实例间数据实时同步,并且提供数据持久性和备份策略。根据公司配置,可以实现同时对外提供服务和读写分离策略。

优点:一主多从,以非阻塞方式完成数据同步。分散服务压力,实现读写分离。从服务器之间可互相同步请求,减少主服务压力

缺点:不具备容错和恢复能力,主服务存在单点风险。较难支持在线扩容

3、Redis Sentinel(哨兵)

部署架构主要包括Redis Sentinel(节点满足2n+1,n>=1)集群和Redis数据集群,可以实现故障发现、故障自动转移、配置中心和客户端通知。

优点:通过心跳机制和投票裁决完成主从主动切换

缺点:难以在线扩容

4、Redis Cluster

最小配置6个节点以上(3主3从),无中心架构,采用虚拟槽分区,所有的键根据哈希函数映射到0~16383个整数槽内,每个节点负责维护一部分槽以及槽所映射的键值数据。

优点:去中心化,所有物理节点映射在(0~16384)slot上,Redis Cluster负责维护节点、桶、值之间关系。节点可动态增删。使用端连接任何一个可用节点即可。

缺点:批量操作(mget、mset)支持有限。事务支持有限