Redis集群Cluster集群

Posted lch-hao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis集群Cluster集群相关的知识,希望对你有一定的参考价值。

在哨兵模式中,仍然只有一个Master节点,当并发写请求较大时,无法缓解写的压力,在3.0版本Redis-Cluster出现解决了这个问题

Redis-Cluster集群特点:

  1)由多个Redis服务器组成的分布式网络服务集群

  2)集群之中由多个Master主节点,每一个主节点都可读可写

  3)节点之间相互通信,两两相连

  4)Redis集群无中心节点

技术图片

 

在Redis-Cluster集群中,可以为每一个主节点添加从结点,主节点和从结点遵循主从模型的特性(添加从节点可以扩展系统的读性能)

Redis-Cluster集群的故障转移机制:

  Redis-Cluster集群的故障转移机制和Redis Sentinel基本一样,区别在于Redis-Cluster集群的故障转移是由集群中其他在线的主节点负责进行的,所以集群不必另外使用Redis Sentinel

技术图片

 

Redis-Cluster集群分片策略:

  分片策略主要是解决key存储位置的

  集群将整个数据库分为16384个槽位(solt),所有的key-value数据都存储在这些solt的某一个中,而一个槽位可以存放多个数据,key的槽位计算公式为:slot_number=crc16(key)%16384,其中crc16为16位循环冗余校验和函数。

  集群中的每个主节点都可以处理0个至16383个槽,当16384个槽都有某个节点在负责处理时,集群进入上线状态(反之则处于瘫痪状态),并开始处理客户端发送的数据命令请求。

技术图片

 

 Redis-Cluster集群redirect

  由于Redis集群无中心节点,请求会随机发给任意主节点:

  

  主节点只会处理自己负责槽位的命令请求,其它槽位的命令请求,该主节点会返回客户端一个转向错误;

  客户端根据错误中包含的地址和端口重新向正确的负责的主节点发起命令请求。

技术图片

 

配置流程:

1.环境搭建

  1.1安装ruby环境

技术图片 技术图片

  1.2安装ruby和redis的接口程序,利用xftp将redis-3.0.0.gem拷贝至/usr/local下安装

技术图片

 

2.集群的规划

  由于物理机数量有限,本文将采用同一台主机构建一个伪分布式集群,以不同端口表示不同的redis节点:

  主节点:192.168.93.4:7001 192.168.93.4:7002 192.168.93.5:7003

  从结点:192.168.93.4:7004 192.168.93.4:7005 192.168.93.5:7006

  在/usr/local/下创建redis-cluster目录,7001~7006

技术图片

 

3.将redis解压路径下的配置文件redis.conf,依次拷贝到7001~7006目录中,并修改(port、bind、protected-mode、cluster)

建议配置(daemonized  yes 后台启动,logfile  /usr/local/redis/redis-cluster/700X/node.log日志输出位置)

技术图片

7001的配置

技术图片

技术图片

技术图片

技术图片

其他节点配置同7001

 

4.指定各个节点的配置文件启动客户端

技术图片

技术图片

 

5.执行创建集群的命令(进入redis安装源码src下)

技术图片

技术图片

创建成功

利用客户端查看集群信息

-c表示以集群方式连接redis

-h指定ip地址,

-p指定端口号

cluster nodes 查询集群结点信息;

cluster info 查询集群状态信。

技术图片

 

添加主节点:

下面是添加一个master主节点添加7007节点,添加一个“7007”目录作为新节点,配置信息同前面7001~7006配置

 技术图片

技术图片

通过客户端7007发现已加入到集群中

技术图片

为7007节点分配hash槽,才能存储数据

 1)先连上集群

技术图片

2)输入hash槽的数量

技术图片

3)输入7007节点的id值

技术图片

技术图片4)输入分配槽点的源节点id

技术图片

输入all则为从每一主节点中分配

5)同意分配计划,或取消重新分配

技术图片

 

通过客户端查看集群状态

技术图片

 

 添加从节点(先配置7008的基础信息,同上7001~7007)

技术图片

到src目录下添加从节点

技术图片

添加成功

技术图片

通过客户端查看集群状态

技术图片

 

以上是关于Redis集群Cluster集群的主要内容,如果未能解决你的问题,请参考以下文章

redis cluster集群理解

Redis Cluster集群的搭建

Redis Cluster集群

Redis Cluster

redis cluster集群选主

redis cluster集群部署