redis伪集群搭建

一、下载并编译redis

mkdir /home/soft/redis
cd /home/soft/redis
wget https://download.redis.io/releases/redis-6.2.4.tar.gz
tar xzf redis-6.2.4.tar.gz
cd redis-6.2.4
make

二、初始化6个节点

规划:7000、7002、7004为主,7001、7003、7005为从
cd /home/soft/redis
mkdir -p cluster
cd cluster
mkdir -p redis_{7000..7005}/{data,log,node,pid}

三、初始化7000节点

cd /home/soft/redis/cluster
cp /home/soft/redis/redis-6.2.4/redis.conf /home/soft/redis/cluster/redis7000.conf
cd /home/soft/redis/cluster
vi redis7000.conf
#注释掉不绑定就是不限制本机访问
#bind 127.0.0.1 -::1
#指定端口
port 7000
# 启动后台运行
daemonize yes
# 存放进程Id
pidfile /home/soft/redis/cluster/redis_7000/pid/redis_7000.pid
# 日志文件
logfile "/home/soft/redis/cluster/redis_7000/log/redis7000.log"
# 快照存放文件,存储在dir配置的工作目录下
dbfilename dump7000.rdb
# 工作目录
dir /home/soft/redis/cluster/redis_7000/data/
# 是否启动保存操作日志
appendonly yes
# 操作日志存放文件
appendfilename "appendonly7000.aof"
# 是否开启集群
cluster-enabled yes
# 集群配置文件(启动后自动生成),存储在dir配置的工作目录下data
cluster-config-file nodes-7000.conf
# 集群节点ping、pong超时时间
cluster-node-timeout 10000
# 节点访问密码
requirepass zsoft
# 客户的最大连接数
maxclients 100000

#最大内存
maxmemory 10G

#主节点设置了密码,从节点需要配置主节点的密码,否则无法主从同步
masterauth zsoft

四、初始化7001到7005节点

cd /home/soft/redis/cluster
sed 's/7000/7001/g' redis7000.conf > redis7001.conf
sed 's/7000/7002/g' redis7000.conf > redis7002.conf
sed 's/7000/7003/g' redis7000.conf > redis7003.conf
sed 's/7000/7004/g' redis7000.conf > redis7004.conf
sed 's/7000/7005/g' redis7000.conf > redis7005.conf

五、启动7000到7005节点

cd /home/soft/redis/redis-6.2.4
src/redis-server /home/soft/redis/cluster/redis7000.conf
src/redis-server /home/soft/redis/cluster/redis7001.conf
src/redis-server /home/soft/redis/cluster/redis7002.conf
src/redis-server /home/soft/redis/cluster/redis7003.conf
src/redis-server /home/soft/redis/cluster/redis7004.conf
src/redis-server /home/soft/redis/cluster/redis7005.conf

六、查看已启动的节点进程

ps -ef| grep redis

七、创建6个节点的集群

cd /home/soft/redis/redis-6.2.4
src/redis-cli --cluster create 192.168.10.14:7000 192.168.10.14:7002 192.168.10.14:7004 192.168.10.14:7001 192.168.10.14:7003 192.168.10.14:7005 --cluster-replicas 1 -a zsoft

注意:但提示Can I set the above configuration?时,请输入yes
ps:最后这个 --cluster-replicas 1,表示每个主节点一个备份节点,即一主一从,–cluster-replicas 2, 即一主两从(需要9个节点)

PS:大坑,网上大部分建立集群的时候都是使用127.0.0.1,这样会导致java客户连接集群时默认使用127.0.0.1来连接,所以不能使用以下命令来建立集群

src/redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7002 127.0.0.1:7004 127.0.0.1:7001 127.0.0.1:7003 127.0.0.1:7005 --cluster-replicas 1 -a zsoft

八、查看集群节点信息

cd /home/soft/redis/redis-6.2.4
src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft cluster nodes

九、关闭所有节点服务

cd /home/soft/redis/redis-6.2.4
src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft shutdown
src/redis-cli -h 127.0.0.1 -p 7001 -a zsoft shutdown
src/redis-cli -h 127.0.0.1 -p 7002 -a zsoft shutdown
src/redis-cli -h 127.0.0.1 -p 7003 -a zsoft shutdown
src/redis-cli -h 127.0.0.1 -p 7004 -a zsoft shutdown
src/redis-cli -h 127.0.0.1 -p 7005 -a zsoft shutdown

十、重建集群

模式一、全部数据删除重建集群

必须先第九步关停所有节点服务

cd /home/soft/redis/cluster
rm -rf redis_{7000..7005}/{data,log,node,pid}
cd /home/soft/redis/cluster
mkdir -p redis_{7000..7005}/{data,log,node,pid}

然后重新执行第五步启动7000到7005节点

然后执行第七步重建集群

模式二、删除配置重建集群

必须先第九步关停所有节点服务

cd /home/soft/redis/cluster
rm -rf redis_{7000..7005}/data/nodes-{7000..7005}.conf

然后重新执行第五步启动7000到7005节点

然后执行第七步重建集群

十一、开通端口支撑远程访问

firewall-cmd --zone=public --add-port=7000/tcp --permanent

firewall-cmd --zone=public --add-port=7001/tcp --permanent

firewall-cmd --zone=public --add-port=7002/tcp --permanent

firewall-cmd --zone=public --add-port=7003/tcp --permanent

firewall-cmd --zone=public --add-port=7004/tcp --permanent

firewall-cmd --zone=public --add-port=7005/tcp --permanent

firewall-cmd --zone=public --add-port=7006/tcp --permanent

firewall-cmd --zone=public --add-port=7007/tcp --permanent

firewall-cmd --reload

十二、扩容

集群扩容7006、7007

cd /home/soft/redis/cluster

mkdir -p redis_{7006,7007}/{data,log,node,pid}

sed 's/7000/7006/g' redis7000.conf > redis7006.conf

sed 's/7000/7007/g' redis7000.conf > redis7007.conf

cd /home/soft/redis/redis-6.2.4

src/redis-server /home/soft/redis/cluster/redis7006.conf

src/redis-server /home/soft/redis/cluster/redis7007.conf

将新节点(127.0.0.1:7006)加入已有集群(127.0.0.1:7000)

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft --cluster add-node 127.0.0.1:7006 127.0.0.1:7000

查看新节点(127.0.0.1:7006)集群Id(默认为master节点)

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft cluster nodes

将从节点7007加入集群并指定master节点为7006(id)

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft --cluster add-node 127.0.0.1:7007 127.0.0.1:7000 --cluster-slave --cluster-master-id 这里填7006master的id

查看集群信息

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft cluster nodes

给新master节点(127.0.0.1:7006)分配槽位

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft --cluster reshard 127.0.0.1:7006

然后输入需要分配的槽位数,例如100

然后再输入接受槽位的masterId,即新增的7006节点

然后再输入被分割槽位的masterID,例如7004节点

最后输入done结束分配。

十三、缩容

去掉7006、7007节点

查看集群信息

cd /home/soft/redis/redis-6.2.4

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft cluster nodes

#将7006节点的槽位归还7004

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft --cluster reshard --cluster-from 7006节点id --cluster-to 7004节点id --cluster-slots 槽位数 127.0.0.1:7006

将7006、7007节点移出集群

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft --cluster del-node 127.0.0.1:7000 7007节点id

src/redis-cli -h 127.0.0.1 -p 7000 -a zsoft --cluster del-node 127.0.0.1:7000 7006节点id

关停7006、7007节点服务

src/redis-cli -h 127.0.0.1 -p 7006 -a zsoft shutdown

src/redis-cli -h 127.0.0.1 -p 7007 -a zsoft shutdown

查看redis服务

ps -ef| grep redis
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值