Redis逻辑集群创建

pic

逻辑集群简介

Redis从3.0开始引入集群模式的概念。

集群由多个节点(Node)组成,Redis的数据分布在这些节点中。集群中的节点分为主节点和从节点:只有主节点负责读写请求和集群信息的维护;从节点只进行主节点数据和状态信息的复制。

Redis集群模式的作用主要分为:

  • 数据分区:数据分区(或称数据分片)是集群最核心的功能。
  • 高可用:Redis集群模式中,每个主实例都会存在至少一个备实例,能够在主实例故障之后,顶替主实例工作。整个集群不可用时间在30s以下。

逻辑集群的创建

下载Redis源代码:

git clone git@github.com:redis/redis.git
cd redis

给Redis实例开启集群模式

使用下面命令启动6个redis实例:

cd /utils/create-cluster
./create-cluster start 6

创建完成之后,实例的cluster模式已经被打开:

image1

cluster的配置已经配置:

image2

默认情况下,只有当前节点自己

image3

创建逻辑集群

执行下面命令创建逻辑集群:

./create-cluster create 6

创建完成之后登录集群执行 cluster info可以看到:

image4

里面主要执行了:

redis-cli --cluster create 主实例 --cluster-replicas 备实例

create里面主要执行了下面两个操作:

  • 实例之间执行cluster meet,创建逻辑集群,比如cluster meet ip port
  • 根据当前的实例分配主从关系。使用给主实例指定从实例:CLUSTER REPLICATE id ,其中id就是从实例的唯一id。image3中的第一列值。
  • 在主实例上执行cluster setslot slot <slot>分配槽位,将16384个槽位均分到3个主实例上

下面是创建了集群了配置信息:

image5

文件里面含义如下:

  • 第一列表示当前实例的唯一表示id,长度固定。
  • 第二列表示当前实例的ip和端口信息,格式:当前实例监听ip:监听端口@集群通信端口
  • 第三列表示当前实例是主实例还是从实例,是否为当前登录实例,包含myself的是当前配置文件对应的实例
  • 第四列表示对应主实例的id,-表示当前实例是主实例
  • 第五、六、七列分别是:已经发送的ping大小,接收到的pong的大小,当前实例的Epoch
  • 第八列是当前实例是否可以连通整个集群:connected表示连通,disconnected表示连不通
  • 第九列以及后面的列表示当前实例所对应的槽位,比如0-1000表示当前实例包含0-1000的槽位


标 题:《Redis逻辑集群创建
作 者:zeekling
提 示:转载请注明文章转载自个人博客:小令童鞋

评论

取消