redis集群的优缺点,5种使用方式优缺点介绍

1、Redis Cluster

Redis Cluster优点:数据依照slot存储分布在多个节点,节点间数据共享,能够动态调整数据分布;可扩展性;无中心架构;高可用性;能够降低运维成本,有效提高系统的可用性以及扩展性。

Redis Cluster缺点:数据通过异步复制,不保证数据的强一致性;Client 实现复杂;节点会因为某些原因发生阻塞被判断下线;多个业务使用同一套集群的时候,不能够依据统计区分冷热数据,资源隔离性较差,非常容易出现互相影响;Slave 在集群中充当“冷备”,不能缓解读压力;Key批量操作限制;Key事务操作支持有限;Key不可以将一个很大的键值对象如 hash、list 等映射到不同的节点;不支持多数据库空间;复制结构只支持一层;避免产生hot-key,导致主库节点成为系统的短板;避免产生 big-key,导致网卡撑爆、慢查询等;重试时间应该大于cluster-node-time时间;

面试题

redis交集并集差集操作在不同集群模式下有什么不同?
答:cluster模式下不支持跨槽

2、Redis单副本

Redis单副本优点:架构简单,部署方便;高性价比;高性能;

Redis单副本缺点:不保证数据的可靠性;在缓存使用,进程重启之后,数据丢失,即是说有备用节点解决高可用性,但是,却依旧不能够解决缓存预热问题,所以说,不适用于数据可靠性要求高的业务;高性能受限于单核CPU的处理能力,CPU为主要瓶颈,所以适合操作命令简单,排序、计算较少的场景。

3、Redis自研

Redis自研优点:高可靠性、高可用性;自主可控性高;贴切业务实际需求,可缩性好,兼容性好。

Redis自研缺点:维护成本高;实现复杂,开发成本高;需要建立配套的周边设施,如监控,域名服务,存储元数据信息的数据库等。

4、Redis Sentinel

Redis Sentinel优点:部署简单;可以解决Redis主从模式下高可用切换问题;能够很容易的实现Redis数据节点的线形扩展,轻松突破Redis自身单线程瓶颈,能够极大的满足 Redis大容量或者是高性能的业务需求;能够实现一套Sentinel监控一组Redis数据节点或者是多组数据节点

Redis Sentinel缺点:原理理解复杂,部署相对Redis主从模式要更为复杂;资源浪费,Redis数据节点当中slave节点作为备份节点不提供服务;不可以解决读写分离的问题,实现起来比较的复杂;Redis Sentinel主要是针对Redis数据节点中的主节点的高可用切换,对Redis的数据节点做失败判定分为主观下线和客观下线两种,对于 Redis的从节点有对节点做主观下线操作,并且,不执行故障转移。

5、Redis多副本

Redis多副本优点:高可靠性;读写分离策略,从节点能够扩展主库节点的读能力,有效应对大并发量的读操作。

Redis多副本缺点:故障恢复复杂,假如,没有RedisHA系统,那么在主库节点出现故障的时候,就要手动的去将一个从节点晋升为主节点,与此同时,要通知业务方变更配置,并且,还要让其它从库节点去复制新主库节点,整个过程需要人为干涉,比较复杂;主库的写能力受到单机的限制,可以考虑分片;主库的存储能力受到单机的限制,可以考虑 Pika;原生复制的弊端在早期的版本中也会比较突出。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Redis集群和哨兵是用于高可用性和容错性的两不同的Redis架构。 Redis集群是一分布式架构,它将数据分散在多个节点上,每个节点负责存储部分数据。集群使用哈希槽(hash slot)来分配数据,可以动态扩展和缩减节点数量。集群具有以下优点: 1. 高可用性:当一个节点失效时,集群可以自动进行故障转移,保证数据的可用性。 2. 水平扩展:可以通过添加更多的节点来增加存储容量和处理能力。 3. 负载均衡:集群可以自动将请求路由到正确的节点,并实现数据的均匀分布。 然而,Redis集群也有一些缺点: 1. 配置复杂:需要正确配置集群节点和哈希槽。 2. 不支持单个键的事务操作:因为数据可能分布在多个节点上,所以无法在一个事务中跨多个键执行操作。 3. 部分节点失效时的性能下降:当部分节点失效时,集群的性能可能会下降。 相比之下,Redis哨兵是一监控和自动故障转移的机制。它通过监控主节点的状态并自动将从节点升级为新的主节点来实现高可用性。哨兵具有以下优点: 1. 自动故障转移:当主节点失效时,哨兵可以自动将从节点升级为新的主节点,保证数据的可用性。 2. 简单配置:相对于集群,哨兵的配置较为简单。 然而,Redis哨兵也有一些缺点: 1. 单点故障:如果哨兵本身发生故障,可能导致无法进行自动故障转移。 2. 故障转移时间较长:由于需要进行选举和重新配置,故障转移可能需要一些时间。 综上所述,Redis集群适合需要高可用性和水平扩展的场景,而Redis哨兵适合对高可用性要求不高或者对配置要求较简单的场景。选择哪架构取决于具体的需求和限制条件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不能吃辣的JAVA程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值