软件|【图文教程】Redis分片集群搭建( 二 )


cd /tmp
# 修改配置文件
printf '%s\' 7001 7002 7003 8001 8002 8003 | xargs -I{ -t sed -i 's/6379/{/g' {/redis.conf


三:启动
因为已经配置了后台启动模式 , 所以可以直接启动服务 。 执行命令如下:
# 进入/tmp目录
cd /tmp
# 一键启动所有服务
printf '%s\' 7001 7002 7003 8001 8002 8003 | xargs -I{ -t redis-server {/redis.conf

【软件|【图文教程】Redis分片集群搭建】
通过ps命令查看状态:
ps -ef | grep redis


发现服务都已经正常启动了 。
如果要关闭所有经常 , 可以使用kill命令 。 如下:
ps -ef | grep redis | awk '{print $2' | xargs kill

或者使用第二种方式:

printf '%s\' 7001 7002 7003 8001 8002 8003 | xargs -I{ -t redis-cli -p { shutdown


推荐使用第二种方式 , 关闭进程 。
四:创建集群
虽然服务启动了 , 但是目前每个服务之间都是独立的 , 没有任何关联关系的 。
我们需要执行命令来创建集群 , 在Redis5.0之前 , 创建集群比较麻烦 , 5.0之后集群关联命令都集成到redis-cli中了 。
4.1:Redis 5.0之前创建集群命令-认识认识就行
Redis 5.0 之前集群命令都是用Redis安装包下的src/redis-trib.rb来实现的 。 因为redis-trib.rb是由ruby语言编写的 。 所以需要安装ruby环境 。
安装ruby需要环境依赖命令:
# 安装依赖
 yum -y install zlib ruby rubygems
 gem install redis

然后通过命令来管理集群 。 命令如下:

# 进入redis的src目录
cd /tmp/redis-6.2.4/src
# 创建集群
./redis-trib.rb create --replicas 1 192.168.1.11:7001 192.168.1.11:7002 192.168.1.11:7003 192.168.1.11:8001 192.168.1.11:8002 192.168.1.11:8003

注意:修改成自己的ip地址 。
4.2:Redis 5.0以后创建集群-※
我们使用的是Redis6.2.4版本 , 集群管理已经集成到了redis-cli中了 。 所以 , 我们可以通过redis-cli命令创建集群了 。 命令如下:
redis-cli --cluster create --cluster-replicas 1 192.168.1.11:7001 192.168.1.11:7002 192.168.1.11:7003 192.168.1.11:8001 192.168.1.11:8002 192.168.1.11:8003

注意:ip修改成自己的 。
命令说明:
redis-cli --cluster 或者 ./redis-trib.rb:表示集群操作的命令
create:标识创建集群
--cluster-replicas 1 或者 --replicas 1:指定集群中每个master的副本个数为1.此是节点总数/(replicas+1)得到的就是master的数量 。 因此节点列表中的前N个就是master , 其它节点都是slave节点 , 随机分配到不同的master 。
命令执行后的样子:

输入yes后 , 则集群开始创建 。 如下图:

通过以下命令 , 可以查看集群状态:
redis-cli -p 7001 cluster nodes


我们从master的id可以查到和哪个slave关联上 。 如上图中 , 我们7001这个master就和8001这个slave匹配上了 。五:测试
我们尝试链接7001节点 , 存储一个数据 。 命令如下:
# 连接
redis-cli -p 7001
# 存储数据
set num 123
# 读取数据
get num
# 再次存储
set a 1

在执行set num 123的时候没问题 , 但是在执行 set a 1的时候报错了 。 如下图:


这是因为 , 我们现在是分片集群了 , 在对集群操作的时候 , 需要给redis-cli 加上 -c参数才可以 。