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
可以看到,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.
如果遇到这样的错误,解决方法:
(1)删除dump.rdb
文件
(2)删除自动生成的在redis.conf
里面cluster-config-file
配置的文件:
版权声明:
作者:Joe.Ye
链接:https://www.appblog.cn/index.php/2023/04/01/redis-6-server-cluster-building/
来源:APP全栈技术分享
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论