Linux CentOS7搭建Redis Cluster集群

本文介绍了如何在Linux环境下搭建基于Redis5.0的RedisCluster集群,包括3主3从的模式设置,涉及下载安装、配置文件创建、启动Redis服务以及初始化和扩容收缩集群的步骤。重点在于集群的搭建过程和相关配置参数的解释。
摘要由CSDN通过智能技术生成

任何一个高并发的系统设计初期就一定会思考如何在保证吞吐的情况下提高自己的容灾能力。单节点的应用总会有单点故障的问题,当你的机器宕机,整个系统不可被访问,一般我们可以通过集群的方式来解决单节点故障,提高系统的可用性。本文主要简述如何在Linux环境下搭建基于Redis5.0版本的集群。
Redis集群模式主要有三种,主从模式(Redis2.8版本之前的模式)、哨兵sentinel模式(Redis2.8及之后的模式)和Redis Cluster集群模式(Redis3.0版本之后)。本文主要讲述如何搭建Redis Cluster的3主3从集群模式。

上图清晰的阐述了Redis Cluster的3主3从模式和节点的关系,如果你看不懂,建议你好好了解一下Redis Cluster的模式,本文不做过多解释,重点讲述怎么去搭建集群环境。
首选准备好6台Linux centOS7服务器
(保证6台服务器的对应端口访问权限,不然集群可能初始化失败,这个很重要,这个很重要,这个很重要,redis集群用到的端口一般是你设置的port和 port + 10000这俩端口)
node1
node2
node3
node4
node5
node6

如果你没那么多服务器,那么你也不用担心。其实一台也可以,只需要改下配置文件访问端口就可以了,搭建流程和6台服务器搭建流程是一样的。

1、下载Redis5.0.14版本的安装包

可以到官网下载,也可以通过下边的网盘去下载
Redis5.0.14
提取码:qe2g

2、任选一台服务器,上传到linux服务器的安装目录下

我的目录是/home/tools,如果没有这个目录建议提前创建好

mkdir -p /home/tools

然后进入/home/tools目录

cd /home/tools

输入rz,然后回车上传安装包

rz

查看当前目录,查看上传的安装包

ll

3、解压redis安装包

tar -zvxf redis-5.0.14.tar.gz

4、移动解压后的redis目录到/usr/local目录下,并将目录重新命名为redis

mv redis-5.0.14 /usr/local/redis

5、进入/usr/local/redis目录下,然后执行编译命令

首先进入目录

cd /usr/local/redis

然后执行make命令

make

然后执行make install命令

make PREFIX=/usr/local/redis install

如果上述步骤没什么error的话,那么恭喜你,redis已经安装成功了

6、进入/usr/local/redis目录下,创建redis.conf配置文件,来配置相关redis启动参数

vim直接创建并编辑redis.conf文件

vim redis.conf

输入以下内容,可以直接复制粘贴就行

port 6379
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes
protected-mode no
requirepass ********
masterauth ********
cluster-announce-ip xxx.xxx.x.xxx
daemonize yes

简单描述一下几个重要的参数
port:redis的端口,合理范围内,随意设置,我这里设置的为6379(如果你用一台服务器搭建的话,那么每个节点的端口要配置成不一样的,除此之外其他都一样)
cluster-enabled:开启redis cluster集群,一定要设置为true
cluster-config-file:集群节点信息文件
requirepass:redis的访问密码,自己定义
masterauth:和requirepass的值设置一样即可
cluster-announce-ip:服务器的ip地址
daemonize:后台启动设置为true

最后保存退出即可

7、其他节点服务器重复以上安装步骤即可,其他什么也不需要改

8、六台服务器分别启动redis

进入redis目录下,

cd /usr/local/redis

执行

./bin/redis-server ./redis.conf

9、进入任意一个服务器的redis目录初始化集群

./bin/redis-cli -a ‘xxxxxx’ --cluster create 192.168.0.26:6379 192.168.0.27:6379 192.168.0.28:6379 192.168.0.29:6379 192.168.0.30:6379 192.168.0.31:6379 --cluster-replicas 1
根据提示输入yes,然后回车即可
成功后会提示集群的主从节点对应的IP、节点的ID、分配的slots
M开头的代表主节点
S开头的代表从节点

–cluster-replicas 1 表示占比,表示主和从的比例,这里是三主三从,所以是1
-a ‘xxxxxx’ 其中’xxxxxx’表示redis的密码,输入你自己设置的密码就行

注意上边的初始化命令只需要初始化一次就行了,再此基础上可以进行动态扩容和收缩。

10、补充

进入任意一个节点,执行如下命令,进入此redis节点

redis-cli.exe -c -h 192.168.1.20 -p 7001  -a xxxxxxxx

查看redis节点集群信息

info replication

查看集群节点

cluster nodes

或者不登录直接查看

redis-cli -a xxxxxxxx -p 7001 cluster nodes

11、集群扩容

添加7007节点到集群。第一个192.168.1.21:7007是新增的集群节点,第二个192.168.1.20:7001是集群中正常存活的节点。

redis-cli -a xxxxxxxx --cluster add-node 192.168.1.21:7007 192.168.1.20:7001

为新增加的节点添加slot,输入以下命令后提示输入分配数量,和节点的ID,正常输入数量和要分配的节点ID然后回车,分配slot方式输入all每个主节点平均移动然后回车,最后输入yes回车确定

redis-cli -a xxxxxxxx --cluster reshard 192.168.1.21:7007

把7008节点添加进集群。添加7008节点到集群,第一个192.168.1.22:7008是新增的集群节点,第二个192.168.1.20:7001是集群中正常存活的节点

redis-cli -a xxxxxxxx --cluster add-node 192.168.1.22:7008 192.168.1.20:7001

连接7008节点

redis-cli -c -h 192.168.1.22 -p 7008 -a xxxxxxxx

把7008设置为7007的从节点(5242967342c91280bef0f7f11ad964a7769b1059为7007的节点ID)

cluster replicate 5242967342c91280bef0f7f11ad964a7769b1059

或者一步到位

redis-cli -a xxxxxxxx --cluster add-node 127.0.0.1:7004 127.0.0.1:7001 -a xxxxxxxx --cluster-slave 5242967342c91280bef0f7f11ad964a7769b1059

12、集群收缩

集群收缩移除7007主节点和7008从节点,首先移除从节点7008
(1347ddc7fd6c80fbb23cb57dc8e6d9ea4c650891为7008从节点ID)

redis-cli -a xxxxxxxx --cluster del-node 192.168.1.22:7008 1347ddc7fd6c80fbb23cb57dc8e6d9ea4c650891

移除主节点7007,首先把7007的slot还回集群中去,输入以下命令,输入返还数量100,输入任意一个存活主节点ID,输入源节点ID即7007节点ID,输入done结束,最后输入yes完成slot的返还

redis-cli -a xxxxxxxx --cluster reshard 192.168.1.21:7007

删除主节点7007(5242967342c91280bef0f7f11ad964a7769b1059为7007主节点ID)

redis-cli -a xxxxxxxx --cluster del-node 192.168.1.21:7007 5242967342c91280bef0f7f11ad964a7769b1059
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值