# Redis集群搭建（二）

> 来源：梦飞idc云平台 | 原文：https://www.mfisp.com/13628.html | 发布：2022-12-02 | 更新：2022-12-02 | 分类：建站教程、投稿分享

## 3、创建Redis集群

 

### 1> 安装ruby环境

 

创建集群要用到ruby的一个脚本，在创建集群前，先安装ruby的运行环境和ruby的redis客户端。

 

shell> yum -y install ruby rubygems  
shell> gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/ # 配置taobao的源  
shell> gem install redis --version 3.2.0

 

### 2> 创建集群

 

shell> redis-trib.rb create --replicas 1 192.168.0.201:6379 192.168.0.201:6380 192.168.0.201:6381 192.168.0.202:16379 192.168.0.202:16380 192.168.0.202:16381

 

参数说明：   
1> redis-trib.rb脚本默认安装在$REDIS_SRC_HOME/src目录下，在安装redis服务时，已将其拷贝到/usr/bin目录下   
2> create：创建集群参数   
3> –replicas 1：每个master有1个slave节点   
根据节点顺序确定master与slave节点，前边的优先选择做为master节点，后边优先选择做为slave节点。由脚本自动分配，但master和slave绝对不会分配在同一台机器上。

 

### 3> 检查Redis集群状态

 

shell> redis-trib.rb check 192.168.0.201:6379

 

![Redis集群搭建（二）](https://www.mfisp.com/wp-content/uploads/2021/10/20221202001314nITXnC.png)

 

从上图可以看出，192.168.0.201:6379、192.168.0.201:6380、192.168.0.201:6381被选为了master节点。192.168.0.202:16379被选为192.168.0.201:6381的slave节点，192.168.0.202:16380被选为192.168.0.201:6379的slave节点，192.168.0.202:16381被选为192.168.0.201:6380的slave节点。

 

***到这儿Redis的集群就配置成功了！***

 

## 4、验证Redis集群

 

#### **数据存储测试**

 

**# 连接到201的6379节点  
shell> redis-cli -c -h 192.168.0.201 -p 6379  
192.168.0.201:6379> set foo abc  
-> Redirected to slot [12182] located at 192.168.0.201:6380  
OK  
192.168.0.201:6380>**

 

set foo abc本想在201的6379节点保存foo这个key，但201的6379节点并没有存，而是将请求转发给了201的6380节点存储。而且客户端自动切换到了6380节点。这是神马情况？这其实是redis集群数据存储的机制，通过crc16算法计算key的hash值，然后对16384取模，得到一个0~16384以内的slot值来决定由哪个节点存储，而每一个节点在创建集群的时候，都会均匀的分配相应的slot数量。有关数据存储的机制，请参考后面的文章。

 

#### **自动选主测试**

 

从上边的集群状态中得知，192.168.0.202:16381被选为192.168.0.201:6380的slave节点，现在把6380 master节点kill掉，看redis会不会将16381选主为master节点，并将刚刚保存的foo这个key有没有复制到16381节点中。如下图所示：

 

![Redis集群搭建（二）](https://www.mfisp.com/wp-content/uploads/2021/10/20221202001432YI6w9Q.png)

 

从上图测试结果可以看出，当master节点挂掉之后，slave节点自动选举成了master节点，并且之前保存在master节点的数据foo也成功复制给了slave节点。

---
本页由 梦飞idc云平台（https://www.mfisp.com）提供。站点导航见 https://www.mfisp.com/llms.txt
