Redis 集群单机安装和多服务器安装过程(二)

        上一篇主要是针对单机集群三主三从进行安装,本篇主要是对于多服务器进行三主三从集群安装过程进行部署。

        本次安装使用三台服务器进行,分别是192.168.245.131,192.168.245.132,192.168.245.133。首先准备三台服务器,将下载好的Redis安装包传到服务器响应位置,默认给位的服务器已经安装对应的辅助软件能够正常的安装Redis。具体的安装过程如下:

1.创建安装目录
 
cd /app/cmw
mkdir redis
cd redis
 
2.解压安装包
 
tar -xvzf redis-6.2.6.tar.gz
cd redis-6.2.6
 
3.授予src目录下文件执行权限
 
chmod +x -R src
 
4.安装redis
 
make MALLOC=libc
make install

 安装完成后分别在每台服务器上创建7001和7002端口,并启动,具体如下:

1.创建集群文件夹
 
cd /app/cmw/redis
mkdir cluster
cd cluster
 
2.创建配置、数据、日志目录
 
mkdir -p data conf logs scripts
 
3.创建节点7001配置文件
 
cd conf
vi redis-7001.conf
在该配置文件中输入如下信息
port 7001
daemonize yes
dir "/app/cmw/redis/cluster/data"
logfile "/app/cmw/redis/cluster/logs/7001.log"
#dbfilename不能配置为路径
dbfilename "dump-7001.rdb"
cluster-enabled yes
cluster-config-file nodes-7001.conf
#是否需要每个节点都可用,集群才算可用,关闭
cluster-require-full-coverage no
 
4.复制节点7001到7002
 
sed "s/7001/7002/g" redis-7001.conf >redis-7002.conf

 
5.启动redis服务
 
redis-server  redis-7001.conf
redis-server  redis-7002.conf 

        接下来是本次安装的重点,我们的集群三主三从是通过三台机器来安装的,每台机器都需要有一个主节点,一个从节点,但是我们不能用单台机器的7001做主节点,7002做辅节点,这样的集群没有意义,假设我们这么做了,如果192.168.245.131这台机器宕机了,那么主从节点就都不能用了,这不符合我们集群的初衷,所以我们采用跨机器进行创建集群。

在任意一台服务器执行创建集群,以192.168.245.131,7001端口为例:
redis-cli -p 7001 cluster meet 192.168.245.131 7002
redis-cli -p 7001 cluster meet 192.168.245.132 7001
redis-cli -p 7001 cluster meet 192.168.245.132 7002
redis-cli -p 7001 cluster meet 192.168.245.133 7001
redis-cli -p 7001 cluster meet 192.168.245.133 7002

查询集群结果 redis-cli -p 7001 cluster nodes

b2e2572f41c51d74a950519ce318a7199d5084b7 192.168.245.133:7001@17001 master - 0 1642670543696 2 connected
49ac27be4c3059d5e46d28fb97c2f86b86ea778b 192.168.245.131:7001@17001 myself,master - 0 1642670543000 1 connected
2bc7d72efb0dffaff16f48e84f20a0f40f97428e 192.168.245.132:7002@17002 master - 0 1642670542000 5 connected
3319c164751aa426b3d3773c0a1c9696dd8edd82 192.168.245.133:7002@17002 master - 0 1642670544702 3 connected
f8b68ffbcba2f43038629787d2d0afa0cfb2ac6e 192.168.245.131:7002@17002 master - 0 1642670544000 0 connected
04b33ce8e731068a5df40d48422f9c492a9e4dfd 192.168.245.132:7001@17001 master - 0 1642670545708 4 connected

如果出现随着时间的节点消失的情况,请关注iptables防火墙 等信息,添加过滤端口或者关闭防火墙可修复此问题,注意此过程执行完成之后是能在三台服务器都能看到集群信息的,如果只能在一台或者两台机器看到的话是肯定有问题的需要排查,首先关注防火墙信息。

设置主从关系192.168.245.131/132/133的7001为主节点,7002为从节点,交叉处理

分别在三台机器执行

192.168.245.131:7002作为192.168.245.132:7001的从节点,在192.168.245.131执行
redis-cli -p 7002 cluster replicate 04b33ce8e731068a5df40d48422f9c492a9e4dfd
192.168.245.132:7002作为192.168.245.133:7001的从节点,在192.168.245.132执行
redis-cli -p 7002 cluster replicate b2e2572f41c51d74a950519ce318a7199d5084b7
192.168.245.133:7002作为192.168.245.131:7001的从节点,在192.168.245.133执行
redis-cli -p 7002 cluster replicate 49ac27be4c3059d5e46d28fb97c2f86b86ea778b

查看现在的集群

redis-cli -p 7001 cluster nodes

b2e2572f41c51d74a950519ce318a7199d5084b7 192.168.245.133:7001@17001 master - 0 1642672410168 2 connected
49ac27be4c3059d5e46d28fb97c2f86b86ea778b 192.168.245.131:7001@17001 myself,master - 0 1642672407000 1 connected
2bc7d72efb0dffaff16f48e84f20a0f40f97428e 192.168.245.132:7002@17002 slave b2e2572f41c51d74a950519ce318a7199d5084b7 0 1642672409000 1 connected
3319c164751aa426b3d3773c0a1c9696dd8edd82 192.168.245.133:7002@17002 slave 49ac27be4c3059d5e46d28fb97c2f86b86ea778b 0 1642672409157 2 connected
f8b68ffbcba2f43038629787d2d0afa0cfb2ac6e 192.168.245.131:7002@17002 slave 04b33ce8e731068a5df40d48422f9c492a9e4dfd 0 1642672408149 4 connected
04b33ce8e731068a5df40d48422f9c492a9e4dfd 192.168.245.132:7001@17001 master - 0 1642672409000 4 connected


然后就是分配槽点,参考上一篇单机分配的脚本

由于每台服务器的7001端口都是主节点,分别在三台服务器执行如下脚本:

#192.168.245.131
sh addslots.sh 0 5460 7001
#192.168.245.132
sh addslots.sh 5461 10922  7001
#192.168.245.133
sh addslots.sh 10923 16383  7001

查询分配结果
redis-cli -p 7001 cluster slots
1) 1) (integer) 0
   2) (integer) 5460
   3) 1) "192.168.245.131"
      2) (integer) 7001
      3) "49ac27be4c3059d5e46d28fb97c2f86b86ea778b"
   4) 1) "192.168.245.133"
      2) (integer) 7002
      3) "3319c164751aa426b3d3773c0a1c9696dd8edd82"
2) 1) (integer) 5461
   2) (integer) 10922
   3) 1) "192.168.245.132"
      2) (integer) 7001
      3) "04b33ce8e731068a5df40d48422f9c492a9e4dfd"
   4) 1) "192.168.245.131"
      2) (integer) 7002
      3) "f8b68ffbcba2f43038629787d2d0afa0cfb2ac6e"
3) 1) (integer) 10923
   2) (integer) 16383
   3) 1) "192.168.245.133"
      2) (integer) 7001
      3) "b2e2572f41c51d74a950519ce318a7199d5084b7"
   4) 1) "192.168.245.132"
      2) (integer) 7002
      3) "2bc7d72efb0dffaff16f48e84f20a0f40f97428e"

查询集群状态
redis-cli -p 7001 cluster info

cluster_state:ok
cluster_slots_assigned:16383
cluster_slots_ok:16383
cluster_slots_pfail:0
cluster_slots_fail:0
cluster_known_nodes:6
cluster_size:3
cluster_current_epoch:5
cluster_my_epoch:2
cluster_stats_messages_ping_sent:5178
cluster_stats_messages_pong_sent:5281
cluster_stats_messages_sent:10459
cluster_stats_messages_ping_received:5280
cluster_stats_messages_pong_received:5178
cluster_stats_messages_meet_received:1
cluster_stats_messages_received:10459


接下来就是设置每个节点的密码,参考上篇文章,希望能帮到您,有问题帮忙指正,转载请标明处处,谢谢关注点赞! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值