RedHat Linux服务器Redis三主三从集群部署(普通用户启动)

ops/2024/11/22 22:19:00/

一、安装redis
先查看是否安装c++的编译器; 执行 sudo yum -y install gcc-c++(否则直接安装redis没依赖环境)
第一步:上传安装包
第二步:在/mpjava路径下解压sudo tar -zxvf redis-6.2.5.tar.gz
第三步:进入 cd redis-6.2.5路径
第四步:sudo make

第五步:安装
输入命令: make PREFIX=/usr/local/redis install

第六步:启动redis验证是否安装成功
进入src目录下,输入命令启动redis

cd src
./redis-server


处理方法:将“vm.overcommit_memory=1”添加到/etc/sysctl.conf,然后重新启动或运行命令“sudo sysctl -p”以使其生效。

Redis三主三从交叉集群部署:
第一步:创建redis启动用户(非root用户),创建节点配置文件路径:
创建用户:sudo useradd -s /sbin/nologin -M redis
创建目录:sudo mkdir -p /home/redis /home/redis/data /home/redis/run /home/redis/log
指定/home/redis目录属于redis用户:sudo chown -R redis.redis /home/redis

第二步:创建节点配置文件:
执行命令:

       cp redis.conf /home/redis/cd /home/rediscp -r redis.conf redis6379.confcp -r redis.conf redis6380.conf  

每台服务器复制redis目录redis.conf为redis6379.conf和redis6380.conf为,按以下内容进行调整。
redis6379.conf:

pidfile /home/redis/run/redis6379.pid        #pid文件以端口来区分
port 6379                                    #监听端口不同, 可以更改端口提高安全性
logfile "/home/redis/log/redis6379.log"      #logfile以端口来区分
dir /home/redis/data                         #redis数据文件存放目录
dbfilename dump6379.rdb                      #数据文件dbfilename以端口来区分
masterauth LTTMS#2024!@cshj                  #主节点认证密码
requirepass LTTMS#2024!@cshj                 #Redis连接密码,和requirepass设置成相同的值
appendfilename "appendonly_6379.aof"         #追加文件名appendfilename以端口来区分
cluster-config-file nodes-6379.conf          #cluster-config-file以端口来区分
cluster-enabled yes                          #启用集群
bind ip地址                                  #绑定IP保证集群时能正常连接
cluster-node-timeout 2000                    #集群节点超时时间
daemonize yes                                #开启守护进程

redis6380.conf:

pidfile /home/redis/run/redis6380.pid        #pid文件以端口来区分
port 6380                                    #监听端口不同, 可以更改端口提高安全性
logfile "/home/redis/log/redis6380.log"      #logfile以端口来区分
dir /home/redis/data                         #redis数据文件存放目录
dbfilename dump6380.rdb                      #数据文件dbfilename以端口来区分
masterauth LTTMS#2024!@cshj                  #主节点认证密码
requirepass LTTMS#2024!@cshj                 #Redis连接密码,和requirepass设置成相同的值
appendfilename "appendonly_6380.aof"         #追加文件名appendfilename以端口来区分
cluster-config-file nodes-6380.conf          #cluster-config-file以端口来区分
cluster-enabled yes                          #启用集群
bind ip地址                                  #绑定IP保证集群时能正常连接
cluster-node-timeout 2000                    #集群节点超时时间
daemonize yes                                #开启守护进程

第三步:启动服务
三节点服务器进入路径:cd /usr/local/redis/bin

sudo -u redis ./redis-server /home/redis/redis6379.conf &
sudo -u redis ./redis-server /home/redis/redis6380.conf &

第四步:放行端口
如集群配置完成后开启防火墙报节点无法连接,需做放行端口配置:
放行端口:
节点1、2、3:

sudo firewall-cmd --zone=public --add-port=6379/tcp --permanent    放行6379端口
sudo firewall-cmd --zone=public --add-port=6380/tcp --permanent    放行6380端口
sudo firewall-cmd --zone=public --add-port=16379/tcp --permanent 放行16379内部通讯端口
sudo firewall-cmd --zone=public --add-port=16380/tcp --permanent 放行16380内部通讯端口sudo firewall-cmd --reload  #重新载入 返回 success 代表成功sudo firewall-cmd --zone=public --query-port=6379/tcp    查看 返回 yes 代表开启成功
sudo firewall-cmd --zone=public --query-port=6380/tcp    查看 返回 yes 代表开启成功sudo firewall-cmd --zone=public --query-port=16379/tcp    查看 返回 yes 代表开启成功
sudo firewall-cmd --zone=public --query-port=16380/tcp    查看 返回 yes 代表开启成功

第五步:启动redis集群
服务器上使用以下命令启动redis集群
命令:
./redis-cli --cluster create 10.0.0.8:6379 10.0.0.9:6379 10.0.0.10:6379 10.0.0.9:6380 10.0.0.10:6380 10.0.0.8:6380 --cluster-replicas 1 -a ***********(密码)

第六步:检查集群是否配置成功

命令:./redis-cli -h 10.0.0.8 -p 6379
输入密码:auth 密码

查看集群信息:cluster info

cluster_state:ok 代表集群可用
cluster_known_nodes:6 代表集群有6节点
列出集群当前已知的所有节点( node),以及这些节点的对应关系信息。命令:cluster nodes

第七步配置开机自启
参考我的博客里开机自启篇-《Linux系统-redis集群、nacos、nginx、keepalived、mysql开机自启》


http://www.ppmy.cn/ops/135898.html

相关文章

【Android、IOS、Flutter、鸿蒙、ReactNative 】自定义View

Android Java 自定义View 步骤 创建一个新的Java类,继承自View、ViewGroup或其他任何一个视图类。 如果需要,重写构造函数以支持不同的初始化方式。 重写onMeasure方法以提供正确的测量逻辑。 重写onDraw方法以实现绘制逻辑。 根据需要重写其他方法&…

C#之WPF的C1FlexGrid空间的行加载事件和列事件变更处理动态加载的枚举值

列变更,EnumDataItemStackClassTypeList数据源是枚举配置,实时查询到VM缓存的,如果是定义的枚举就不用这个麻烦了,直接在对象里面获取枚举值匹配,即 public string ApplyStatusName { get { retur…

【Oracle篇】SQL性能优化实战案例(从15秒优化到0.08秒)(第七篇,总共七篇)

💫《博主介绍》:✨又是一天没白过,我是奈斯,DBA一名✨ 💫《擅长领域》:✌️擅长Oracle、MySQL、SQLserver、阿里云AnalyticDB for MySQL(分布式数据仓库)、Linux,也在扩展大数据方向的知识面✌️…

计算机网络 第三章:数据链路层(关于争用期的超详细内容)

数据链路层要干的是:解决在一组网络上(一段链路上)传输的问题。 (在第一章我们讨论过数据是如何经过五层传输的,但在本章我们只考虑数据链路层之间传输数据的问题,所以就先想象成是两个链路层之间在直接传输…

【K8S系列】Kubernetes 中如何调试imagePullSecrets配置详细步骤介绍

调试 imagePullSecrets 配置是确保 Kubernetes 能够成功拉取私有镜像所需的关键步骤。以下是详细的调试步骤和建议。 1. 确认 imagePullSecrets 配置 首先,确保在 Pod 的 YAML 配置中正确引用了 imagePullSecrets。其基本结构如下: apiVersion: v1 kin…

【如何用更少的数据作出更好的决策】-gpt生成

如何用更少的数据作出更好的决策 用更少的数据作出更好的决策是一种能力的体现,需要结合有效的方法、严谨的逻辑以及对问题的深刻理解。以下是一些可以帮助你实现这一目标的策略: 明确目标 在收集和分析数据之前,先明确你的决策目标是什么…

JMeter 性能测试计划深度解析:构建与配置的树形结构指南

Apache JMeter 的 TestPlan .jmx 文件是采用树形结构进行组织的,这种结构使得测试计划的构建和配置更加直观和易于管理。以下是对 JMeter GUI 配置内容的详细描述: 一、一级目录:jmeterTestPlan jmeterTestPlan:这是整个测试计…

Zustand 让 React 状态变得太简单

为什么选择 Zustand? Zustand 是一个为 React 打造的现代化状态管理库,它以其简洁的 API 和强大的功能正在改变前端开发的方式。相比 Redux 繁琐的样板代码(action types、dispatch、Provider等),Zustand 提供了更加优雅且直观的解决方案。 核心特性 1. 基于 Hook 的简洁API i…