目录
目标
在临时测试场景中,通过linux单机,通过启动6个redis实例,构建3主3从redis cluster。
另外,单机版安装教程:ubuntu下安装reids单机版:https://blog.csdn.net/weixin_44005802/article/details/136837266?spm=1001.2014.3001.5501
准备
- 主机:ubuntu 20.04
- 端口:7001、7002、7003、8001、8002、8003
- 配置文件:redis.confn,文件内容如下
#redis默认的PORT
port 6379
# 开启集群功能
cluster-enabled yes
# 集群的配置文件名称,不需要我们创建,由redis自己维护
cluster-config-file /root/owner/redis-cluster/6379/nodes.conf
# 节点心跳失败的超时时间
cluster-node-timeout 5000
# 持久化文件存放目录
dir /root/owner/redis-cluster/6379
# 绑定地址
bind 0.0.0.0
# 让redis后台运行
daemonize yes
# 注册的实例ip
replica-announce-ip 106.15.186.88
# 保护模式
protected-mode no
# 数据库数量
databases 1
# 日志
logfile /root/owner/redis-cluster/6379/run.log
requirepass 123456
masterauth 123456
部署
创建6个redis实例目录
cd /owner/redis-cluster
mkdir 7001 7002 7003 8001 8002 8003
将redis.conf分发到各个目录中
cd /owner/redis-cluster
echo 7001 7002 7003 8001 8002 8003 | xargs -t -n 1 cp redis.conf
修改各目录下redis.conf中端口为当前目录对应端口(将ip也修改为自己的ip)
cd /owner/redis-cluster
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i 's/6379/{}/g' {}/redis.conf
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t sed -i 's/106.15.186.88/106.15.186.99/g' {}/redis.conf
启动各redis实例
cd /owner/redis-cluster
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf
查看各redis实例状态
cd /owner/redis-cluster
ps -ef | grep redis
创建集群,关联各redis节点(因为redis.conf中设置了密码,因此创建集群时,需使用 -a 指定密码)
cd /owner/redis-cluster
redis-cli --cluster create --cluster-replicas 1 106.15.186.88:7001 106.15.186.88:7002 106.15.186.88:7003 106.15.186.88:8001 106.15.186.88:8002 106.15.186.88:8003 -a 123456
查看集群状态
cd /owner/redis-cluster
redis-cli -p 7001 -a 123456 cluster nodes
测试集群
cd /owner/redis-cluster
redis-cli -c -p 7001 -a 123456
127.0.0.1:7001> set a 1
-> Redirected to slot [15495] located at 106.15.186.88:7003
OK
106.15.186.88:7003> get a
"1"
106.15.186.88:7003> set k 2
-> Redirected to slot [7629] located at 106.15.186.88:7002
OK
106.15.186.88:7002> set p 3
-> Redirected to slot [16023] located at 106.15.186.88:7003
OK
重启集群
redis cluster集群创建成功后,如果需要重启集群,只需重启每个节点即可,不需删除nodes.conf等配置文件。否则需要使用redis-cli --cluster重建集群。
关闭redis节点
cd /owner/redis-cluster
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-cli -p {} shutdown
或
ps -ef | grep redis | awk '{print $2}' | xargs kill
重启redis节点
cd /owner/redis-cluster
printf '%s\n' 7001 7002 7003 8001 8002 8003 | xargs -I{} -t redis-server {}/redis.conf