redis集群安装

文章详细介绍了如何在至少3台环境中安装Redis集群,包括上传解压Redis、配置文件、启动节点、集群配置以及主从节点的设置和测试。在集群配置中,重点讲述了节点互相发现、分配槽位和处理可能出现的问题。最后,通过关闭和恢复主从节点来测试集群的容错能力。
摘要由CSDN通过智能技术生成

redis集群安装

redis集群需要至少3台环境

1 上传解压

上传至/opt/redis目录下
tar -zxvf redis-6.2.6.tar.gz
进入解压目录
make MALLOC=libc
make test
如果出现如下图报错
在这里插入图片描述
安装tcl(集群的其余环境也要安装)
yum install -y tcl
重新编译和test
在这里插入图片描述

2 配置文件

创建目录/opt/redis/redis-cluster
并在此新创建的目录下创建文件bin、conf、logs、data、var
在解压目录下
cp src/redis-benchmark /opt/redis/redis-cluster/bin
cp src/redis-check-aof /opt/redis/redis-cluster/bin
cp src/redis-check-rdb /opt/redis/redis-cluster/bin
cp src/redis-cli /opt/redis/redis-cluster/bin
cp src/redis-sentinel /opt/redis/redis-cluster/bin
cp src/redis-server /opt/redis/redis-cluster/bin
cp src/redis-trib.rb /opt/redis/redis-cluster/bin
在/opt/redis/redis-cluster/conf/ 下修改配置文件
重命名为redis_6379.conf,修改如下配置

bind 0.0.0.0 #监听地址
protected-mode no #关闭保护模式
port 6379 #端口号
daemonize yes #后台运行
masterauth redis #集群密码
requirepass redis #密码,集群下两个密码都要设置,设置为相同
pidfile /data/redis/redis-cluster/var/redis_6379.pid #pid存放路径
logfile /data/redis/redis-cluster/logs/redis_6379.log #日志存放路径
always-show-logo yes #是否显示总日志
dbfilename redis_6379.rdb #持久化数据文件名称
dir /data/redis/redis-cluster/data #持久化数据文件存放路径
cluster-enabled yes #开启集群模式
cluster-config-file nodes_6379.conf #集群模式配置文件名称
cluster-node-timeout 15000 #集群超时时间
ignore-warnings ARM64-COW-BUG #如果是arm架构内核,开启此配置

在/data/redis/redis-cluster/conf目录下,拷贝redis_6379.conf为redis_6380.conf
修改redis_6380.conf文件,将文件中的6379全部修改为6380

3 节点启动

将/opt/redis/拷贝到剩余节点
在/opt/redis/redis-cluster目录下执行启动命令
bin/redis-server conf/redis_6379.conf
bin/redis-server conf/redis_6380.conf
在每台服务器上面查看进程
在这里插入图片描述

4 集群配置

4.1配置节点互相发现
在任意一个server执行就可以
先使用客户端命令连接
进入/data/redis/redis-cluster目录,执行连接命令
bin/redis-cli -p 6379
连上之后先输入密码
auth 密码
再输入互相发现命令
CLUSTER MEET IP port
依次输入其他所有五个redis服务的ip和端口配置相互发现
在这里插入图片描述

配置完成以后使用命令查看节点信息
cluster nodes
在这里插入图片描述

4.2为集群中的主节点分配槽位
分别对三台服务器的6379分配槽位,将每台服务器的6379设置为master,分配槽位的命令如下:
redis-cli -h ip -a 密码 -p 6379 cluster addslots {5461..10922}
在任意一台机器上分配(槽位之间两个点间隔)

redis-cli -h ip -a 密码 -p 6379 cluster addslots {0…5461}
redis-cli -h ip -a 密码 -p 6379 cluster addslots {5462…10922}
redis-cli -h ip -a 密码 -p 6379 cluster addslots {10923…16383}

在这里插入图片描述
有时候回出现这样的报错
在这里插入图片描述
用seq命令代替{}

./redis-cli -h 192.168.200.129 -a redis -p 6379 cluster addslots $(seq 0 5461)
./redis-cli -h 192.168.200.130 -a redis -p 6379 cluster addslots $(seq 5462 10922)
./redis-cli -h 192.168.200.131 -a redis -p 6379 cluster addslots $(seq 10923 16383)

如果槽位分配有问题,出现如下报错

ERR Slot 0 is already busy (Redis::CommandError)

只需要登录到每个节点执行 flushall 和 cluster reset 就可以了。
分配完槽位可以连上任一节点,查看集群节点可以看到槽位的分配情况
cluster nodes
在这里插入图片描述
cluster info
在这里插入图片描述
4.3 配置集群的主从节点
分别登录三台服务器,使用redis-cli连上6380节点
使用命令让当前6380节点复制另外一台服务器上的6379节点
命令如下(后面的长字符串即要复制的节点在cluster nodes中展示的对应的值)
CLUSTER REPLICATE b6d701a178d369e9f936cc54c12313770211d68e
分别在每台服务的6380节点进行主从配置
配置完成以后,可以使用cluster nodes再次查看集群状态
可以看到master和slaver,并且slaver从属的master
在这里插入图片描述

5 集群测试

1 使用命令连上一台服务器的master节点,使用set命令保存一个字符串
2 使用命令关闭当前master节点
redis-cli -p 6379 -a 密码 shutdown
3 查看集群状态
连上任意一台redis服务
cluster nodes
可以看到停掉的节点状态为fail,充当fail节点的从节点已经升为了master
4 连接停掉的节点对应的从节点,使用get可以查看到保存的数据,此时从节点已经晋升为master节点
5 恢复之前的主从关系。重新启动停掉的节点,可以通过命令cluster nodes查看节点状态,可以看到停掉节点重启之后变成了从节点,此时停掉新晋升master节点,再查看集群状态,可以看到重启之后的节点晋升为master节点,之后再重启停掉的节点,此时可以查看集群状态,主从关系已恢复到开始状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值