一文看懂redis三种分布式部署方案

586 阅读2分钟

1、主从结构

image.png

作用:

  • 支持容灾恢复
  • 读写分离、降低主库压力

优点:

  • 支持主从复制、主机自动将数据同步到从机,可以读写分离,主机负责写、从机负责读

缺点:

  • 不具备自动容错和恢复功能,主机从机宕机都会造成前端读写失败,要等待机器重启或者手动切换前端ip才能恢复(人工介入)
  • 主机宕机,宕机前部分数据未及时同步到从机,会造成数据不一致,可用性降低
  • 多个从机断线,需要重启不可以同一时间重启,因为会发送sync请求和主机全量同步,多的话会造成主机 IO剧增
  • 较难支持在线扩容

2、哨兵模式

image.png

作用:

  • 支持动态的故障切换,不需要人工操作

优点:

  • 哨兵模式是基于主从模式的,有所有主从模式的优点
  • 可以自动切换主从节点,系统更健壮,可用性更高(自动版的主从复制)

缺点:

  • 较难支持在线扩容
  • 相当于挂了一套旁路系统,增加了对哨兵集群的维护成本

3、集群模式

image.png 作用:

  • 解决单机性能问题,还有扩容问题,将数据分散

优点:

  • 无中心模式,数据分片,分布在不同的卡槽当中,每个节点存储不同的内容
  • 高可用,支持哨兵模式故障转移,增加了主节点和从节点,任意一节点发生故障,集群还可以对外服务
  • 增加横向和纵向扩展能力

缺点:

  • 需要多个redis客户端
  • 集群模式不支持事务
  • cluster 的mget的方法比redis要慢很多,因为它被拆成了多个get指令

总结:redis cluster主要是针对海量数据+高并发+高可用的场景,海量数据,如果你的数据量很大,那么建议就用redis cluster,数据量不是很大时,使用sentinel就够了。redis cluster的性能和高可用性均优于哨兵模式。