redis的原理(四)

简介: redis的原理(四)

1、分布式数据存储的核心算法,数据分布的算法

①、redis cluster

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

b、提供内置的高可用支持,部分master不可用时,还是可以继续工作的,在redis cluster架构下,每个redis要放开两个端口号,比如一个是6379,另外一个就是加10000的端口号,比如16379,16379端口号是用来进行节点间通信的,也就是cluster bus的东西,集群总线。cluster bus的通信,用来进行故障检测,配置更新,故障转移授权,cluster bus用了另外一种二进制的协议,主要用于节点间进行高效的数据交换,占用更少的网络带宽和处理时间。

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

在整个设计当中:集群的主从是由随机的去选择的,由脚本里面最近的节点ip段来主从划分选的,缺点:比如突然第二台挂掉:会影响整个的缓存都会不可用了,因为是按照%来取的,这是hash方式最老土的。

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

比如有三个master.,通过hash算法,来把key放入到不同的位置,hash算法有很多,这时如果节点没有直接落到2上,而是落到下面的位置,这时会有一个顺时针的旋转然后它就会落到2的位置。现在如果即使第三个master挂掉的话,数据不会全部无效。如果下次的key落到3的附近,发现第三个master挂了,无效的,它会继续旋转找到第一个。

但是这时会有热点数据的问题,可能某一个时刻,发现2里面的数据存的很多, 而1的里面没有数据

这时redis搞了一个虚拟节点。虚拟节点去生成1的节点的快捷方式,类似于快速

这时就给它均匀分布,这时就不会导致所有的key落在一个节点上,这时会根据虚拟节点找到真实节点去进行存储了。这就不会出现热点数据堆积的问题。这就不会导致主从的结构的数据完全失效。

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的成本是非常低的。

②、hash环和hash slot是一样的道理,三个master把hash槽分成了三个部分。下面的hash slot是有很多的槽,我这里只是简单的画下


③、这里还有一个机制:就是故障转移机制,如果槽所在的master挂掉了,会实现槽的转移,这就是redis集群能够做到高可用和故障转移的原理。这个比hash环设计的好一些,并且做到了槽的转移。槽的转移是很快速的,因为在一个集群中。一般 的槽是连续的,不是断开的。槽的分配尽量是均匀的。这里不会有热点的问题。因为一个master有5000个槽。

目录
打赏
0
4
5
0
55
分享
相关文章
Redis原理—2.单机数据库的实现
本文概述了Redis数据库的核心结构和操作机制。
Redis原理—2.单机数据库的实现
Redis原理—1.Redis数据结构
本文介绍了Redis 的主要数据结构及应用。
Redis原理—1.Redis数据结构
Redis原理—3.复制、哨兵和集群
详细介绍了Redis的复制原理、哨兵原理和集群原理。
|
6月前
|
Redis 执行 Lua保证原子性原理
Redis 执行 Lua 保证原子性原理
547 1
看完这篇就能弄懂Redis的集群的原理了
看完这篇就能弄懂Redis的集群的原理了
252 0
大数据-48 Redis 通信协议原理RESP 事件处理机制原理 文件事件 时间事件 Reactor多路复用
大数据-48 Redis 通信协议原理RESP 事件处理机制原理 文件事件 时间事件 Reactor多路复用
66 2
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
大数据-46 Redis 持久化 RDB AOF 配置参数 混合模式 具体原理 触发方式 优点与缺点
104 1
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
本文全面阐述了Redis事务的特性、原理、具体命令操作,指出Redis事务具有原子性但不保证一致性、持久性和隔离性,并解释了Redis事务的适用场景和WATCH命令的乐观锁机制。
633 0
Redis 事务特性、原理、具体命令操作全方位诠释 —— 零基础可学习
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等