redis 5.0.8 cluster集群搭建

redis集群安装

去官网下载redis安装包

redis官方下载地址,三个版本,我们选择stable版本,右键复制链接地址

  • unstable (不稳定)
  • stable (稳定)
  • beta (测试)

wget -P /tmp http://download.redis.io/releases/redis-5.0.8.tar.gz

解压编译
#解压到/usr/local目录
tar -zxvf /tmp/redis-5.0.8.tar.gz -C /usr/local/
cd /usr/local/redis-5.0.8/src
#编译
make install
#启动redis测试
#./redis-server
#连接测试
#redis-cli -h 127.0.0.1 -p 6379

连接成功后quit退出redis

创建集群

cluster默认一般是创建6个以上的redis,因为我们是学习使用,一般只有一台电脑供我们学习所以,我们拷贝6个redis修改他们的端口号启动,模拟6台电脑6个redis的情况,生产环境和我们模拟的环境区别不大。

创建redis-cluster目录用来存放redis6个节点
mkdir /usr/local/redis-cluster
cp -r /usr/local/redis-5.0.8 /usr/local/redis-cluster/
cd /usr/local/redis-cluster/redis-5.0.8
rm -f nodes.conf
rm -f dump.rdb
修改配置文件
vim /usr/local/redis-cluster/redis-5.0.8/redis.conf

修改以下配置

  • cluster-enabled yes
  • cluster-node-timeout 5000
  • protected-mode no
  • daemonize yes
  • bind 127.0.0.1 注释掉
拷贝并修改端口号
cp -r /usr/local/redis-cluster/redis-5.0.8 /usr/local/redis-cluster/redis01
cp -r /usr/local/redis-cluster/redis-5.0.8 /usr/local/redis-cluster/redis02
cp -r /usr/local/redis-cluster/redis-5.0.8 /usr/local/redis-cluster/redis03
cp -r /usr/local/redis-cluster/redis-5.0.8 /usr/local/redis-cluster/redis04
cp -r /usr/local/redis-cluster/redis-5.0.8 /usr/local/redis-cluster/redis05
cp -r /usr/local/redis-cluster/redis-5.0.8 /usr/local/redis-cluster/redis06

分别修改他们的端口号,在redis01、redis02、redis03、redis04、redis05、redis06目录下的redis.conf文件,修改port参数

目录端口(port)
redis017001
redis027002
redis037003
redis047004
redis057005
redis067006
创建批量启动redis和批量关闭redis的脚本
  1. 批量启动(start.sh)

start.sh如下,脚本放在/usr/local/redis-cluster/目录下

cd /usr/local/redis-cluster/redis01
src/redis-server redis.conf 
cd ../
cd redis02
src/redis-server redis.conf 
cd ../
cd redis03
src/redis-server redis.conf 
cd ../
cd redis04
src/redis-server redis.conf 
cd ../
cd redis05
src/redis-server redis.conf 
cd ../
cd redis06
src/redis-server redis.conf 
cd ../
  1. 批量关闭脚本(stop.sh)

把redis-5.0.8/src/redis-cli 拷贝到 /usr/local/redis-cluster/ 目录,

cp /usr/local/redis-cluster/redis-5.0.8/src/redis-cli /usr/local/redis-cluster/

shop.sh脚本如下,脚本放在/usr/local/redis-cluster/目录

redis-cli -h 192.168.20.161 -p 7001 shutdown
redis-cli -h 192.168.20.161 -p 7002 shutdown
redis-cli -h 192.168.20.161 -p 7003 shutdown
redis-cli -h 192.168.20.161 -p 7004 shutdown
redis-cli -h 192.168.20.161 -p 7005 shutdown
redis-cli -h 192.168.20.161 -p 7006 shutdown
启动redis,开启集群

我这台centos服务器的ip是192.168.20.161,把这个ip换成自己的ip,不要用 127.0.0.1,不要用localhost,不然客户端如spring boot调用时可能会访问不到

#启动redis
sh /usr/local/redis-cluster/start.sh
#启动集群
./redis-cli --cluster create 192.168.20.161:7001 192.168.20.161:7002 192.168.20.161:7003 192.168.20.161:7004 192.168.20.161:7005 192.168.20.161:7006 --cluster-replicas 1

按照提示输入yes

成功部署如下图所示
在这里插入图片描述

碰到的问题

Waiting for the cluster to join 一直等待

生产环境需要检查防火墙端口是否开启,如redis端口为7001,那么需要开放7001、17001端口
虚拟环境,关闭所有redis,把redis01、redis02…redis06目录下dump.rdb、nodes.conf删掉,重新启动redis和集群。

[ERR] Node NOAUTH Authentication required

检查以下参数是否配置正确。

protected-mode
修改配置文件redis.conf配置文件,protected-mode=no,或者在启动redis的时候加上–protected-mode no

redis-server --protected-mode no

bind
修改配置文件redis.conf配置文件,注释掉bind

requirepass
启动集群时redis不要配置密码,需要配置密码,集群启动成功后在进行配置。

[ERR] Node 192.168.20.161:7001 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

将redis01…redis06目录下的dump.rdb、nodes.conf删掉

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值