redis的三种模式以及涉及到的CAP理论

Redis的三种模式
一、cluster的架构变化
1、单机redis:redis单机模式,保证了数据的一致性而牺牲了可用性,即不能够实现高可用,只是保证了用户可以看到相同的数据和当网络通信出问题是能够保证隔离的子系统能够继续运行,因为在单机模式中master与slave之间不存在通信问题 所以当master节点挂掉以后子节点不能保证能够正常的提供服务
2、哨兵redis:哨兵在单机redis上做了些许改动增加一个sentinel也就是哨兵来实现redis的可用性,让单机的redis的master和slave之间存在通信,实现了故障转移从而实现了高可用性,不过哨兵的缺点也显而易见,那么redis作为一个内存服务器每个节点的数据都是全量复制,哨兵的存储受限于内存最小的节点,并且在故障转移的过程中存在一瞬间的访问瞬断情况,只有一个数据节点对外服务无法应对高并发的访问,而且单个节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率。
3、集群模式:集群模式才采用数据分片的方式存储,即采用虚拟槽分区所有的键值根据哈希算法映射到数据槽内,每个节点负责维护一部分的槽及槽锁映射的键值数据,这使得redis由一个单纯的nosql内存数据库变为一个分布式的nosql数据库使redis具有了分区容忍性,并且实现了负载均衡,当某个节点挂了以后数据在其他节点上具有备份并且这个节点马上就可以投入使用,实现了高可用性也正是因为这一点redis失去了数据的强一致性
4、CAP理论:
Redis单机模式:实现了数据的一致性Consistency(一致性)
redis哨兵模式:实现了数据的一致性和高可用性 Consistency(一致性)、Availability(可用性)
redis 集群模式:实现了分区容忍性和高可用性 Availability(可用性)、Partition Tolerance(分区容错性)
分区容忍性:指分布式系统中的节点被划分为多个区域,每个区域内部可以通信,但是区域之间无法通信,在分布式系统中,分区容忍性必不可少,因为需要总是假设网络是不可靠的。因此,CAP 理论实际上是要在可用性和一致性之间做权衡。
二、集群模式的原理
1、基本通信原理:gossip协议Goosip协议维护集群数据更新
Goosip协议也可以叫流言协议Gossip 过程是由种子节点发起,当一个种子节点有状态需要更新到网络中的其他节点时,它会随机的选择周围几个节点散播消息,收到消息的节点也会重复该过程,直至最终网络中所有的节点都收到了消息。这个过程可能需要一定的时间,由于不能保证某个时刻所有节点都收到消息,但是理论上最终所有节点都会收到消息,因此它是一个最终一致性协议。
2、 存储原理:Redis Cluster 采用虚拟哈希槽分区,所有的键根据哈希函数映射到 0 ~ 16383 整数槽内,计算公式:slot = CRC16(key) & 16383。每一个节点负责维护一部分槽以及槽所映射的键值数据。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Redis是一款流行的开源内存数据存储系统,由于其高效的性能和可靠的稳定性,被广泛的应用于各行各业的应用中。为了满足业务增长和高可用性的需求,Redis提供了多种方式来构建集群,包括主从复制、Sentinel高可用、Redis Cluster三种方式。 1. 主从复制:主从复制是Redis最简单的高可用方案。其基本思路是将数据复制到多个从节点上,这些从节点可以接受读取请求,而主节点则负责写入请求。读操作和写操作分离,极大程度的提高了Redis的并发处理能力,同时也保证了数据的一致性和可靠性。 2. Sentinel高可用:Sentinel是Redis官方推荐的高可用解决方案。Sentinel可以自动检测主节点是否宕机,如果发现主节点宕机,则会自动将其中的从节点升级为主节点,并将新的主节点IP地址广播给其他从节点。这种方式可以解决单点故障问题,提高Redis的可靠性。 3. Redis Cluster:Redis Cluster是Redis提供的分布式解决方案,可以将多个Redis实例组成一个分布式集群。整个集群分为多个slot,每个实例负责一部分slot。这种方式不仅可以实现水平扩展,提高Redis的存储容量,同时也支持自动的故障转移和负载均衡,大大提高了Redis的高可用性和稳定性。 总之,在选择Redis集群方案时,需要根据实际业务需求和系统性能来选择合适的方案。在集群搭建过程中,需要注意配置参数的调整,避免出现性能瓶颈,从而保证系统稳定性和高可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

超级无敌大砍刀

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

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值