Redis Cluster 原理你了解不?

1. redis cluster 介绍

1.1 自动将数据进行分片,每个master上放一部分数据

1.2 提供内置的高可用支持,部分master不可用时,这是可以继续工作的

在redis cluster 架构下,每个redis 要开放两个端口,比如一个是6379,一个是加10000的端口号,比如16379

16379端口号是用来进行节点通信的,也就是cluster bus 的东西,集群总线,cluster bus的通信,用来进行故障检测,配置更新,故障转移授权

cluster bus用了另外一种二进制协议,主要用于节点间进行高效的数据交换,占用更少的网络带宽和处理时间

2. 最老土的hash 算法和弊端(大量缓存重建)

3. 一致性hash算法(自动缓存迁移)+ 虚拟节点(自动负载均衡)

4. redis cluster 的 hash slot 算法

redis cluster 有固定的16384 个hash slot ,对每个key 计算CRC16信息,然后对16384取模,可以获取key对应的hash slot

redis cluster中每个master都会有部分slot,比如3个master,那么可能每个master 持有5000多个hash slot

hash slot让node 的增加和移除很简单,增加一个master,就将其他的master 的hash slot 移动部分过去,减少一个master,就将它的hash slot 移动到其他的master 上去

移动hash slot 的成本是非常低的

客户端的api,可以对指定的数据,让他们走向同一个hash slot , 通过hash  tag 来实现。

赠书:聊聊「分布式架构」那些事儿

往期推荐

Spring Boot 中 @EnableXXX 注解的驱动逻辑

有比 ReadWriteLock更快的锁?

认真看看, 以后写 SQL 就爽多了:MyBatis 动态 SQL:

实战篇:点赞功能,用 MySQL 还是 Redis 好 ?

为什么国内流行的 MyBatis ,国外 Java 工程师却不愿意使用?

扫一扫,关注我

一起学习,一起进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值