CentOS最小化安装下redis集群部署方案

CentOS最小化安装下redis集群部署方案

系统环境:CentOS 7.8
编码环境:jdk-8u261-linux-x64
软件环境:redis5.0.9

安装ifconfig命令:

yum -y install net-tools

完成后输入:ifconfig
即可查看本机IP地址信息。

安装java环境:
上传jdk安装包到/usr目录下
本地终端输入:scp ./jdk-8u261-linux-x64.tar.gz root@10.211.55.13:/usr/local/
输入yes
输入服务器密码
传输完成。

服务器终端输入:cd /usr/local/ 进入该目录下
输入 tar -zxvf jdk-8u261-linux-x64.tar.gz 解压上传的java安装包
输入 cd jdk1.8.0_261/ 进入解压后的文件夹
输入 pwd 得到当前路径/usr/local/jdk1.8.0_261,复制。
输入yum -y install vim 安装vim命令
输入vim /etc/profile 打开环境变量配置文件
在文件末尾添加:

JAVA_HOME=/usr/local/jdk1.8.0_261
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH

(JAVA_HOME的值就是前面pwd复制得到的路径值)
添加完成后保存。
输入 source /etc/profile 刷新环境变量配置文件
输入java -version 得到如下结果说明安装成功。

java version "1.8.0_261"
Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)

输入 rm -rf /usr/local/jdk-8u261-linux-x64.tar.gz 删除安装包

安装wget:
输入 yum -y install wget 安装wget功能

安装redis依赖:
输入 yum -y install tcl
输入 yum -y install gcc

配置防火墙端口:
输入:firewall-cmd --zone=public --add-port=6379/tcp --permanent
长期开启6379端口
输入:firewall-cmd --zone=public --add-port=16379/tcp --permanent
长期开启16379端口
输入:firewall-cmd --reload
更新防火墙配置

6379端口是默认端口,生产环境如果需要变更,请自行替换。
16379端口是通过redis指定的端口+10000得到,用于redis集群搭建时的信息通讯。例如指定redis的端口是8000,那么这里应该输入18000。

安装redis:
输入 cd /usr/local/ 回到local目录下。
输入 wget http://download.redis.io/releases/redis-5.0.9.tar.gz

将redis5.0.9版本下载到当前目录。5.0.9是现行的最后一个稳定版本。如果使用6.+版本。会在make编译时报”not found channel id”错误,目前无法解决。

输入 tar -zxvf redis-5.0.9.tar.gz 解压redis安装包
输入rm -rf redis-5.0.9.tar.gz 删除redis安装包
输入 cd /usr/local/redis-5.0.9
输入 make 进行编译
提示Hint: It’s a good idea to run ‘make test’ ;)说明编译成功
输入 make test 进行测试
提示 All tests passed without errors! 说明test成功。
如果提示Active defrag big keys in tests/unit/memefficiency.tcl,说明环境性能不够,在测试过程中,函数的返回时间超过100秒。再次执行make test可以消除。
输入/usr/local/redis-5.0.9/src/redis-server 看到如下界面说明redis启动成功。
在这里插入图片描述

此时redis是前台启动,输入 control+c 退出。

配置redis:
输入vim /usr/local/redis-5.0.9/redis.conf 进入redis的配置文件
修改如下信息:

修改:bind 127.0.0.1 修改为:bind 10.211.55.13
127.0.0.1是回环地址,不修改不能被其他服务器访问到。
修改:protected-mode yes 修改为:protected-mode no
关闭redis的连接保护,与bind配套使用。
修改:daemonize no 修改为:daemonize yes
使redis启动时作为守护进程在后台启动。
修改: #cluster-enabled yes 修改为: cluster-enabled yes
去掉cluster-enabled的#注释,使redis可以开启集群。

保存并退出。

配置集群:
Redis-cluster集群配置最少需要6台服务。
将其他5台服务器也依照以上配置信息进行配置。并根据服务器的IP和端口做对应修改。
例如:
10.211.55.13:6379
10.211.55.14:6379
10.211.55.15:6379
10.211.55.16:6379
10.211.55.17:6379
10.211.55.18:6379

启动redis服务:
分别在6台服务器上输入:

/usr/local/redis-5.0.9//src/redis-server /usr/local/redis-5.0.9/redis.conf

关闭redis服务:
输入:

/usr/local/redis-5.0.9/src/redis-cli -h 空格 服务器IP 空格
-p 空格 端口 空格 shutdown

启动成功后在任意一台服务器上输入:

/usr/local/redis-5.0.9/src/redis-cli --cluster create 10.211.55.13:6379 10.211.55.14:6379 10.211.55.15:6379 10.211.55.16:6379 10.211.55.17:6379 10.211.55.18:6379 --cluster-replicas 1

cluster-replicas 1表示创建集群的时候配置为1主1从。如果输入2,则表示一主2从。
输入后如下图:
在这里插入图片描述

redis会随机分配主从关系。输入yes完成。

至此,集群搭建完成。
在这里插入图片描述

进入集群节点:
任意服务器输入:/usr/local/redis-5.0.9/src/redis-cli -h 服务器IP -p 服务端口 -c
例如:/usr/local/redis-5.0.9/src/redis-cli -h 10.211.55.13 -p 6379 -c 注意-h和-p后要加空格
在这里插入图片描述

以下操作都需要在进入集群节点后操作

查看集群状态:

cluster info

在这里插入图片描述

查看节点状态和槽信息:

cluster nodes

在这里插入图片描述

redis集群中,所有信息都存储在槽中。集群槽一共有0-16383个,默认会平均分配到master节点上。当有数据存储时,会通过哈希运算自动存储到不通的槽中。

查看节点主从关系:

cluster slots

以下命令需退出redis节点后操作
在这里插入图片描述

删除节点:

/usr/local/redis-5.0.9/src/redis-cli --cluster del-node 要删除的服务器IP:端口 空格 节点ID

例如:
/usr/local/redis-5.0.9/src/redis-cli --cluster del-node 10.211.55.18:6379 d0a7b1bf038bfed8af5bb42d041eaece6dea02d3

在这里插入图片描述

添加一个从节点:

/usr/local/redis-5.0.9/src/redis-cli --cluster add-node 要作为从节点的服务器IP:端口 空格  被加挂从节点的主节点的IP:端口 空格 --cluster-slave --cluster-master-id 被加挂从节点的主节点的ID

例如:
/usr/local/redis-5.0.9/src/redis-cli --cluster add-node 10.211.55.18:6379 10.211.55.14:6379 --cluster-slave --cluster-master-id 664864f1da2bb16bb2878a04a06aef7e06c2b7d6

注意:当一个从节点被执行了删除从节点的操作后,该节点的redis会自动关闭。这时添加该节点会报错:
在这里插入图片描述

将该节点重新启动即可解决。

注意:如果原来该结点在集群中的配置信息已经生成到cluster-confifig-fifile指定的配置文件中(如果 cluster-confifig-fifile没有指定则默认为nodes.conf),这时可能会报错:

[ERR] Node 10.211.55.18:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

在这里插入图片描述

需要删除该节点生成的nodes.conf、dump.rdb、appendonly.aof文件
输入:rm -rf nodes.conf
输入:rm -rf dump.rdb
输入:rm -rf appendonly.aof
在这里插入图片描述

删除后重新启动redis,再次添加从节点,即可成功。
在这里插入图片描述

添加主节点:
确保被添加的节点上没有生成的nodes.conf、dump.rdb、appendonly.aof文件
否则会报错:

[ERR] Node 10.211.55.18:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0.

输入:/usr/local/redis-5.0.9/src/redis-cli --cluster add-node 被添加的节点IP:端口 现有集群中某一个master的IP:端口
例如:
/usr/local/redis-5.0.9/src/redis-cli 10.211.55.18:6379 10.211.55.13:6379

查看集群节点可以发现,此时该节点已经添加到集群中。
在这里插入图片描述

虽然节点标记为master,但现在节点并不能提供服务,因为hash槽数量为0,需要为节点分配槽之后才可以提供存储服务。

分配HASH槽:
输入:/usr/local/redis-5.0.9/src/redis-cli --cluster reshard 要分配槽的服务器IP:端口
例如:
/usr/local/redis-5.0.9/src/redis-cli --cluster reshard 10.211.55.18:6379
在这里插入图片描述

提示想将多少个HASH槽分配,输入想分配的数量 例如:3000
在这里插入图片描述

输入要添加3000个HASH槽的节点ID
在这里插入图片描述

输入被扣除3000个HASH槽的节点的ID,可已输入一个或者多个,也可以输入all,redis会从所有master中平均抽取3000个HASH槽。
一个:
在这里插入图片描述

多个:
在这里插入图片描述

完成后输入done。提示是否执行操作:
在这里插入图片描述

确认后,即分配完毕。再次查看节点信息,可以看到现在该节点已被分配了HASH槽,可以正常提供 服务了。
在这里插入图片描述

删除主节点:
输入:/usr/local/redis-5.0.9/src/redis-cli --cluster del-node 要被删除的服务器IP:端口 空格 被删除的服务器的ID
例如:
./redis-cli --cluster del-node 10.211.55.18:6379 bd867a2ce48f47c44427280a94b8542b0a9b7820
确保该节点没有HASH槽,否则会报错:
在这里插入图片描述

确保该节点没有slave节点,否则同样会报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值