redis集群原理

前言

单机模式,硬件资源有限,如果机器故障,直接导致redis不可用。为了提高redis服务稳定、高qps、高扩展,高可用才进行redis的集群搭建。集群主要是通过多个服务相互协调和维护来保证服务的高可用,redis集群一般分为sentinel模式和redis-cluster模式(redis5.0之后官方推出的)

sentinel模式集群

在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般,特别是在主从切换的瞬间存在访问瞬断的情况,而且哨兵模式只有一个主节点对外提供服务,没法支持很高的并发,且单个主节点内存也不宜设置得过大,否则会导致持久化文件过大,影响数据恢复或主从同步的效率。架构图如下:

在这里插入图片描述

redis-cluster 模式集群(推荐)

redis集群是一个由多个主从节点群组成的分布式服务器群,它具有复制、高可用和分片特性。Redis集群不需要sentinel哨兵就能完成节点移除和故障转移的功能。需要将每个节点设置成集群模式,这种集群模式没有中心节点,可水平扩展,据官方文档称可以线性扩展到上万个节点(官方推荐不超过1000个节点)。redis集群的性能和高可用性均优于之前版本的哨兵模式,且集群配置非常简单。整个redis集群是16384个hash槽组成,当我们多台master节点来合成集群时,将由这些master节点来分担16384个hash槽,例如我们集群4台master,每一台可以只负责4096个插槽,不定是平分的。当客户端请求时,客户端先通过key值来计算该key所在那个hash槽,再请求到对应的服务器,这样就实现了容量和qps都能水平扩展,我们可以根据需求来动态扩/缩容。每一个master节点下还有一个或多个从节点,当master节点失效时可以从多个从节点选举一个来担任master节点,保证了服务的高可用。虽然此集群功能很强大,但是不要盲目追求,因为此集群搭建至少需要3个master节点,同时每一个主节点至少配置一个从节点,所以redis-cluster模式至少需要6个redis节点来完成导致成本增加。架构图如下:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

罗德阿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值