Redis Cluster是Redis的分布式解决方案,在3.0版本正式推出,有效地解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,能够采用Cluster架构方案到达负载均衡的目的。以前,Redis分布式方案通常有两种:数据库
接下来咱们介绍下Redis Cluster的数据分布。架构
分布式数据库首先要解决把整个数据集按照分区规则映射到多个节点的问题,即把数据集划分到多个节点上,每一个节点负责总体数据的一个子集。并发
虚拟槽分区:巧妙的使用了哈希空间,使用分散度良好的哈希函数把全部数据映射到一个固定范围的整数集合中,整数定义为槽。这个范围通常远远大于节点数,好比Redis Cluster槽范围是0~16363.槽是集群内数据管理和迁移的基本单位。采用大范围槽的主要目的是为了方便数据拆分和集群扩展。每一个节点会负责必定数量的槽。以下图所示:负载均衡
Redis Cluster采用虚拟槽分区:全部的键根据哈希函数映射到0~16383整数槽内,计算公式slot=CRC16 & 16383.每个节点负责维护一部分槽以及槽所映射的键值数据,以下图:分布式
Redis虚拟槽分区的特色:函数