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节点,否则同样会报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 允许您玩在线游戏,与世界各地的人聊天,计算您的按揭利息,并以 3D 形式查看图像。这些以 Java 编程语言编写的应用程序和可从浏览中访问的应用程序称为小程序。公司还将 Java 小程序用于内部网应用程序和其他电子商务的解决方案。所有主要行业的公司都在使用 Java。无论是部署在手机、嵌入式设备、游戏机、笔记本电脑还是数据中心,Java 都提供了当今网络应用所需要的丰富的用户界面、性能、多功能性、可移植性和安全性。Java 平台标准版软件是快速开发和部署安全、便携式应用程序的首选平台,可跨大多数操作系统的服务器和桌面系统。 Java 平台标准版(Java SE)可让您在台式机和服务器以及当今苛刻的嵌入式环境中开发和部署 Java 应用程序。Java 提供了当今应用程序所需的丰富的用户界面、性能、通用性、可移植性和安全性。 Java SE Runtime Environment(运行时环境)包含了运行以 Java 编程语言编写的程序所必需的 Java 虚拟机、运行时类库和 Java 应用程序启动器。 Java 平台的安全性 一个由角色提供的安全信息的描述。适用于开发人员,系统管理员,家庭用户和安全专业人士。 主要特点: - 在一个平台上编写软件,并可在几乎任何其它平台上运行 - 创建的程序可在 Web 浏览器和 Web 服务中运行 - 可开发用于在线论坛、商店、投票、HTML 表单处理等服务器端应用程序 - 结合基于 Java 技术的应用程序或服务来创建高度可定制的应用程序或服务 - 为手机、远程处理器、低成本消费产品和几乎任何具有数字内核的设备编写功能强大且高效的应用程序 Java SE 8 现在可用 Java 平台标准版 8(Java SE 8)是一个主要的功能版本。它包含了很多功能领域的新功能和增强功能。Java SE 8 通过减少样板代码,改进了集合和注释,简单的并行编程模型和更有效地利用现代多核处理器,提高了开发人员的工作效率和显着的增强了应用程序的性能。 Java SE 8u172 版本更新:2018年4月17日

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值