Redis 6 服务器集群搭建

Redis集群搭建

(1)在redis安装目录,创建6个文件夹:

mkdir 9000 9001  9002  9003  9004  9005

(2)将redis安装目录redis.conf文件分别拷贝到6个文件夹中,并命名为:redis-cluster.conf

cp redis.conf 9000/redis-cluster.conf
cp redis.conf 9001/redis-cluster.conf
cp redis.conf 9002/redis-cluster.conf
cp redis.conf 9003/redis-cluster.conf
cp redis.conf 9004/redis-cluster.conf
cp redis.conf 9005/redis-cluster.conf

(3)将 9000-9005 的6个文件夹中redis-cluster.conf文件按照以下的方式进行配置

端口号改成所在文件夹的名称,比如以9000为例:

port 9000

(4)将206的守护进程开启:

daemonize yes

(5)关闭保护模式(如果开启,需要设置密码,比较繁琐。如有需要可以按照自己的需求配置)

protected-mode no

(6)开启集群

cluster-enabled yes

(7)配置cluster-config-file,按照如下格式进行配置:nodes-当前节点的端口号.conf

cluster-config-file nodes-9000.conf

(8)创建启动脚本:start-cluster.sh

#以集群方式启动9000到9005的Redis服务
for port in {9000..9005}
do
  #关闭已经启动的服务,删除临时文件
  redis-cli -c -p $port -h 192.168.52.88 shutdown
  rm -f $port/dump*
  rm -f $port/nodes*
done;

#start redis
for port in {9000..9005}
do redis-server $port/redis-cluster.conf
done;

#create cluster
echo yes|src/redis-cli --cluster create 192.168.52.88:9000 192.168.52.88:9001 192.168.52.88:9002 192.168.52.88:9003 192.168.52.88:9004 192.168.52.88:9005  --cluster-replicas 1

需要将其中的IP修改为自己服务器对应的IP

需要注意的是,老版本的Redis创建服务节点需要使用redis-trib.rb创建,但是新版本的redis则直接用redis-cli即可

其它参数解释:

  • –cluster-replicas 1:表示希望为集群中的每个主节点创建一个从节点(一主一从)
    -cluster-replicas 2:表示希望为集群中的每个主节点创建两个从节点(一主二从)

也就是说,当前的脚本,将启动3主3从的节点

(9)创建停止脚本:stop-cluster.sh

for port in {9000..9005}
do
redis-cli -c -p $port shutdown
done;

Redis集群验证

执行sh start-cluster.sh

Redis6启动集群

可以看到,3主3从的集群配置成功:

  • M:代表主节点,并且自动分配了槽道号
  • S:代表从节点,没有槽道号

Redis集群测试

登录其中一个节点:设置yezhou键的值为ok:
通过对yezhou键的hash取模计算,得到其槽道号为6716,归属端口为9003的节点管理,并自动切换到了端口为9003的节点:

# redis-cli -c -p 9000
127.0.0.1:9000> set yezhou ok
-> Redirected to slot [6716] located at 192.168.52.88:9003
OK
192.168.52.88:9003>

获取键值:

192.168.52.88:9003> get yezhou
"ok"

OK,Redis集群到此搭建成功。

常见错误

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

Redis6启动集群节点非空问题

如果遇到这样的错误,解决方法:

(1)删除dump.rdb文件
(2)删除自动生成的在redis.conf里面cluster-config-file配置的文件:

Redis6删除cluster-config-file配置生成文件

版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/04/01/redis-6-server-cluster-building/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
海报
Redis 6 服务器集群搭建
Redis集群搭建 (1)在redis安装目录,创建6个文件夹: mkdir 9000 9001 9002 9003 9004 9005 (2)将redis安装目录redis.conf文件分别拷贝到6个文件夹中……
<<上一篇
下一篇>>
文章目录
关闭
目 录