redis集群搭建(shell)

环境

redis 5.0.8
CentOS Linux release 7.9.2009 (Core)

修改配置

由于我都是在同一台机器操作,所以不需要绑定IP,需要绑定的去修改bind参数
为了偷懒,我在创建集群的时候直接用shell执行
init.sh

#!/usr/bin/bash
#redis安装目录
redisPath=/www/server/redis
#redis-server路径
redisServer=$redisPath/src/redis-server
redisCli=$redisPath/src/redis-cli
#测试集群目录
redisClusterPath=/usr/local/testRedis
#集群拼接字符
clusterStr=''
rm -rf $redisClusterPath &>/dev/null
mkdir $redisClusterPath
for x in `seq 6370 6375`
do
        #关闭进程
        port=`ps -ef | grep redis | grep $x | awk '{print $2}'`
        if [ $port -gt 0 ];then
                kill $port
        fi
        nodePath=$redisClusterPath/$x
        configPath=$nodePath/redis.conf
        mkdir $nodePath
        \cp $redisPath/redis.conf $configPath
        sed -ri '/^port/cport '''$x'''' $configPath
        sed -ri '/^dir/cdir '''$nodePath'''' $configPath
        sed -ri '/daemonize /cdaemonize yes' $configPath
        sed -ri '/cluster-enabled/ccluster-enabled yes' $configPath
        sed -ri '/# cluster-node-timeout/ccluster-node-timeout 15000' $configPath
        sed -ri '/pidfile/cpidfile '''$nodePath'''/redis.pid' $configPath
        sed -ri '/^logfile/clogfile '''$nodePath'''/redis.log' $configPath
        sed -ri '/# cluster-config-file/ccluster-config-file node-'''$x'''.conf' $configPath
        $redisServer $configPath
        clusterStr="${clusterStr}127.0.0.1:${x} "
done
#查看拼接字符
#echo $clusterStr
#开启集群
$redisCli --cluster create $clusterStr --cluster-replicas 1

执行init.sh

[root@VM_0_17_centos redis]# bash -vx init.sh

在这里插入图片描述
集群搭建完成

连接集群,注意参数-c

[root@VM_0_17_centos redis]# redis-cli -p 6370 -c

127.0.0.1:6370> set name yier
-> Redirected to slot [5798] located at 127.0.0.1:6371
OK
127.0.0.1:6371> set age 18
-> Redirected to slot [741] located at 127.0.0.1:6370
OK
127.0.0.1:6370> get name
-> Redirected to slot [5798] located at 127.0.0.1:6371
“yier”
127.0.0.1:6371>

在集群中,设置和获取值的时候,会自动跳转到键所在的节点

扩容

复制其中一个节点配置,替换成新端口,这边复制了两份,修改端口为7007,7008

进入任意集群master节点(当前集群master端口号为6371,6372,6373):

redis-cli -p 6370

查看节点ID:cluster nodes

127.0.0.1:6371> cluster nodes 
a50379249e5600e972b8b71bc315b2f14f588c92 127.0.0.1:6376@16376 slave fc5b3030458b2fb7cc1fab11c3f3dd6b3c63653b 0 1623711713000 3 connected
91f796d98be82832b1f94b14e8dda070dfe08c9a 127.0.0.1:6372@16372 master - 0 1623711714000 2 connected 5461-10922
1ae41bad673d1bcb839a69570f68bdc8319a565c 127.0.0.1:6374@16374 slave 502c7d8b5c81a82164a738c4f193d996b2fd4982 0 1623711714762 1 connected
fc5b3030458b2fb7cc1fab11c3f3dd6b3c63653b 127.0.0.1:6373@16373 master - 0 1623711715763 3 connected 10923-16383
502c7d8b5c81a82164a738c4f193d996b2fd4982 127.0.0.1:6371@16371 myself,master - 0 1623711713000 1 connected 0-5460
c01078aa1ad996fb7a23cd984a4945800dda9fa7 127.0.0.1:6375@16375 slave 91f796d98be82832b1f94b14e8dda070dfe08c9a 0 1623711713761 2 connected
127.0.0.1:6371> 

添加节点:redis-cli --cluster add-node host:新增端口号 host:集群master节点

redis-cli --cluster add-node 127.0.0.1:7007 127.0.0.1:6371

在这里插入图片描述
分配slot:
查看集群node ID
在这里插入图片描述
示例从6371和6372节点分配solt

redis-cli --cluster reshard 127.0.0.1:6371 --cluster-from 502c7d8b5c81a82164a738c4f193d996b2fd4982,91f796d98be82832b1f94b14e8dda070dfe08c9a  --cluster-to 305145969827edda849c1909aa4938db7b0bc755  --cluster-slots 1000

–cluster-to:表示需要新分配节点的node ID

–cluster-from:表示slot目前所在的节点的node ID,多个ID用逗号,分隔

–cluster-slots:分配的slot数量
每个原节点平均少了500个solt,加入到新的节点
在这里插入图片描述

添加slave节点
redis-cli --cluster add-node 从节点ip:port 主节点ip:port --cluster-slave --cluster-master-id 主节点node ID

redis-cli --cluster add-node 127.0.0.1:7008 127.0.0.1:7007 --cluster-slave --cluster-master-id 305145969827edda849c1909aa4938db7b0bc755

add-node: 后面的分别跟着新加入的slave和slave对应的master

cluster-slave:表示加入的是slave节点

–cluster-master-id:表示slave对应的master的node ID

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值