发者学堂课程【Redis 入门到精通(进阶篇):集群-集群储存结构设计】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/765/detail/13467
集群-集群储存结构设计
内容介绍
一、 数据存储设计
二、 内部通讯设计
一、数据存储设计
通过算法设计,计算出 key 应该保存的位置。如果一个 key 对应多台计算机,首先key 通过一个方法运行之后会得到一个值,这个值再通过16384后会得到一个数,通过这个数确定在计算机中的存储位置。
Redis 服务器会把他存储的计算机进行16384等分,每一份代表一个存储空间,每一台计算机保存若干个这样的存储空间。每一份代表的是一个存储空间,不是存储一个 key 的保存空间。
将 key 按照计算出的结果放到对应的存储空间。
增强可扩展性。假定现在有三个存储空间,现在增加一个节点。增加节点后会经过计算将每个节点的一部分加到新的节点中,这样就会拥有很强的扩展性。
用来放数据的空间区域叫做槽,所谓的增去节点就是改变槽所存储位置不同。多台机器合作工作就是一个机器持有一定的槽,当加机器时把他的槽分一部分给新的机器,如果去机器,把要去的槽返回到现有的机器中。
二、内部通讯设计
各个数据库相互通信,保存各个库中槽的编号数据。假定现有一台计算机发出一个key 访问,首先通过 key 经过两个算法后会得到 key 对应的存储槽位置。如果一次命中直接返回,如果没有一次命中,他会根据记录槽位置去告知具体位置。做加密的过程就是为了确定存储位置保证最多两次命中。