Redis手动搭建Cluster集群超详细步骤

家电维修 2023-07-16 19:17www.caominkang.com家电维修技术

Redis手动搭建Cluster集群超详细步骤

准备工作

1、安装编译软件

yum -y install g g-c++ libstdc++-devel

2、主机别名映射

各主机上执行vi /etc/hosts 命令,输入如下信息

192.168.51.20 node1

192.168.51.27 node2

192.168.51.30 node3

主机部署详细

别名

IP

节点

node-id

槽位数量

Node1

192.168.51.20

6379

c4bbb252c6b56230f2965da0fba4b8685b1a161c

0-5461

Node2

192.168.51.27

6379

cb3b854a41871769779ef96b5db3c116ca2d5a3d

5462-10922

Node3

192.168.51.30

6379

be9f0f4f49cb8f802765e2f01c7eff41333ac27e

10923-16383

Redis集群模式部署开始

1、所有节点创建目录

mkdir -p /usr/local/redis_cluster/redis_63{79,80}/{conf,pid,logs}

2、Redis安装包下载

get https://donload.redis.io/releases/redis-6.2.1.tar.gz

3、所有节点解压安装包

tar -zxvf redis-6.2.1.tar.gz -C /usr/local/redis_cluster/

4、所有节点编译安装Redis

cd /usr/local/redis_cluster/redis-6.2.1/  

make && make install

5、集群配置

执行编辑vi /usr/local/redis_cluster/redis_6379/conf/redis.f

相同的配置文件每节点创建一份(共6份),按照注释修改对应的配置项即可

# 守护进行模式启动 

daemonize yes 

# 设置数据库数量,默认数据库为0 

databases 16

# 绑定地址,需要修改 

bind 192.168.0.120

# 绑定端口,需要修改 

port 6379

# pid文件存储位置,文件名需要修改 

pidfile /usr/local/redis_cluster/redis_6379/pid/redis_6379.pid

# log文件存储位置,文件名需要修改 

logfile /usr/local/redis_cluster/redis_6379/logs/redis_6379.log

# RDB快照备份文件名,文件名需要修改 

dbfilename redis_6379.rdb

# 本地数据库存储目录,需要修改 

dir /usr/local/redis_cluster/redis_6379

# 集群相关配置 # 是否以集群模式启动 

cluster-enabled yes 

# 集群节点回应最长时间,超过该时间被认为下线 

cluster-node-timeout 15000

# 生成的集群节点配置文件名,文件名需要修改 

cluster-config-file nodes_6379.conf

6、启动集群,每个主机上执行如下2条命令

redis-server /usr/local/redis_cluster/redis_6379/conf/redis.f

redis-server /usr/local/redis_cluster/redis_6380/conf/redis.f

验证启动

1)redis集群模式的启动进程带有cluster关键字

 2)查看每台节点上是否生成集群信息配置文件

cat /usr/local/redis_cluster/redis_6379/nodes_6379.conf

cat /usr/local/redis_cluster/redis_6380/nodes_6380.conf

7、加入集群

现在虽然说每个节点都成功启动了,彼此之间并没有任何联系。

所以下一步要做的就是将6个节点加入至一个集群中,如下操作示例

redis-cli -h 192.168.51.20 -p 6379

登录后执行如下命令

cluster meet 192.168.51.27 6379

cluster meet 192.168.51.30 6379

cluster meet 192.168.51.27 6380

cluster meet 192.168.51.30 6380

cluster meet 192.168.51.20 6380

验证集群

1)执行cluster nodes 查看集群信息

2)执行 stat -tnlp|grep redis ,查看10000+端口出现了,说明集群各个节点之间能互相通信了

 

8、主从配置

6个节点之间目前还没有任何主从关系,从cluster nodes命令输出中记录主节点的node-id信息.

是node1的6380,将它映射到node2的6379

redis-cli -h node1 -p 6380 

node1:6380> cluster replicate cb3b854a41871769779ef96b5db3c116ca2d5a3d

然后是node2的6380,将它映射到node3的6379

redis-cli -h node2 -p 6380 

node2:6380> cluster replicate be9f0f4f49cb8f802765e2f01c7eff41333ac27e

是node3的6380,将它映射到node1的6379

redis-cli -h node3 -p 6380 

node3:6380> cluster replicate c4bbb252c6b56230f2965da0fba4b8685b1a161c

验证

执行cluster nodes查看集群节点信息

#myself表示当前登录是那个节点

9、分配槽位

槽位号从0开始,共16384个。为了写入操作能分配均匀,需要在主节点上进行平均分配。

执行如下指令即可

redis-cli -h node1 -p 6379 cluster addslots {0..5461}

redis-cli -h node2 -p 6379 cluster addslots {5462..10922}

redis-cli -h node3 -p 6379 cluster addslots {10923..16383}

验证

执行cluster nodes查看槽位分配是否正确,如图所示

10、集群部署完毕,检查集群状态

登录任一节点,执行cluster info查看集群状态

 

数据操作验证

集群主从验证

执行 redis-cli -h node1 -p 6379 shutdon 命令,模拟故障。

如图所示,node1状态fail,且node3从库升级为主库,槽位已迁移。

 

在node1上执行redis-server /usr/local/redis_cluster/redis_6379/conf/redis.f恢复节点

查看集群节点已自动变成slave

 

Copyright © 2016-2025 www.jianfeikang.com 建飞家电维修 版权所有 Power by