1. 安装Redis依赖GCC
1.1. 查看是否安装gcc:gcc -v
1.2. 在线安装:yum -y install gcc
1.3. 离线安装
下载gcc离线安装包:
百度网盘(转载:https://blog.csdn.net/li1325169021/article/details/115385274)
上传gcc包到linux服务器(/data/tar目录)
安装gcc:
方式一:单个安装(进入/data/tar)
[root@CentOS-1 home]#rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm [root@CentOS-1 home]#rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm [root@CentOS-1 home]#rpm -ivh kernel-headers-3.10.0-862.el7.x86_64.rpm [root@CentOS-1 home]#rpm -ivh glibc-headers-2.17-222.el7.x86_64.rpm [root@CentOS-1 home]#rpm -ivh glibc-devel-2.17-222.el7.x86_64.rpm [root@CentOS-1 home]#rpm -ivh cpp-4.8.5-28.el7.x86_64.rpm [root@CentOS-1 home]#rpm -ivh gcc-4.8.5-28.el7.x86_64.rpm
方式二:批量安装(进入/data/tar)
rpm -ivh *.rpm --nodeps --force
2. 安装Redis
转载:https://blog.csdn.net/m0_47073109/article/details/121633513
2.1. 哨兵模式配置文件
redis服务 | redis端口 | 哨兵端口 | 主从 |
---|---|---|---|
10.97.51.182 | 6380 | 26380 | 主节点 |
10.97.51.156 | 6380 | 26380 | 从节点 |
10.97.51.174 | 6380 | 26380 | 从节点 |
2.2. 下载Redis离线安装包:
官网地址:http://download.redis.io/releases/redis-6.2.4.tar.gz
百度网盘:https://pan.baidu.com/s/1Uk6wCQTUIhSaHZ3ZtHzOJA?pwd=g796
上传Redis离线安装包到linux服务器(三台服务器都需要)(/data/tar)
解压安装包:tar -zxvf redis-6.2.4.tar.gz
进入解压目录:
执行:make(编译)
注意:编译完成后会在解压目录下生成一个src目录(使用ll查看)
安装:执行 make install PREFIX=/data/install/redis/install
注意:默认安装路径:/usr/local/bin,PREFIX:指定安装目录(不存在会自动创建),安装完成会在安装目录下生成一个bin目录
创建pid和logs目录:
mkdir -p /data/install/redis/install/pid
mkdir -p /data/install/redis/install/logs
进入安装目录:cd /data/install/redis/install/bin
a)集群的配置
复制解压目录下的配置文件到安装目录:cp /data/install/redis/redis-6.2.4/redis.conf .
修改安装目录bin目录下的配置文件 vim redis.conf
b)哨兵的配置
复制解压目录下的配置文件到安装目录:cp /data/install/redis/redis-6.2.4/sentinel.conf .
修改安装目录bin目录下的配置文件 vim sentinel.conf
#允许跨网段
#这里的master-name可以自定义,quorum是一个数字,指明当有多少个sentinel认为一个master失效时,master才算真正失效。
#master-name只能包含英文字母,数字,和“.-_”这三个字符需要注意的是master-ip 要写真实的ip地址而不要用回环地址(127.0.0.1)
3. 启动
3.1. 启动Redis
分别进入三台服务器的reids安装目录:cd /data/install/redis/install/bin
#10.97.51.182
./redis-server redis.conf
#10.97.51.174
./redis-server redis.conf
#10.97.51.156
./redis-server redis.conf
3.2. 设置主从关系
分别进入三台服务器的reids安装目录:cd /data/install/redis/install/bin
#10.97.51.182
./redis-cli -p 6380 -a Qwer+1234
#10.97.51.174
./redis-cli -p 6380 -a Qwer+1234
#10.97.51.156
./redis-cli -p 6380 -a Qwer+1234
在10.97.51.174和10.97.51.156客户端分别执行,完成主从关系建立
SLAVEOF 10.97.51.182 6380
3.3. 启动哨兵
分别进入三台服务器的reids安装目录:cd /data/install/redis/install/bin
#10.97.51.182 ./redis-sentinel sentinel.conf #10.97.51.174 ./redis-sentinel sentinel.conf #10.97.51.156 ./redis-sentinel sentinel.conf
验证是否启动
ps -ef | grep redis

3.4. 查看redis节点信息
10.97.51.182(主)
10.97.51.174(从)
10.97.51.156(从)
3.5. 验证主从
分别进入三台服务器的reids安装目录:cd /data/install/redis/install/bin
4. Redis开机自启动
创建服务文件
cd /etc/systemd/system/
touch redis.service
vim redis.service
[Unit] Description=redis After=network.target [Service] Type=forking
# 此处配置redis的实际安装路径 ExecStart=/data/install/redis/install/bin/redis-server /data/install/redis/install/bin/redis.conf PrivateTmp=true [Install] WantedBy=multi-user.target
保存系统服务文件,然后输入命令,重载系统服务:
systemctl daemon-reload
最后,执行下面的命令,实现开机自启:
systemctl enable redis
查看redis状态
systemctl start redis
systemctl status redis
systemctl stop redis
#如果redis已经启动,则需要先停掉
5. Redis-sentinel开机自启动
创建服务文件
cd /etc/systemd/system/
touch redis_sentinel.service
vim redis_sentinel.service
[Unit]
Description=redis_sentinel
After=network.target
[Service]
Type=forking
#此处配置真实路径
ExecStart=/data/install/redis/install/bin/redis-sentinel /data/install/redis/install/bin/sentinel.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
保存系统服务文件,然后输入命令,重载系统服务:
systemctl daemon-reload
最后,执行下面的命令,实现开机自启:
systemctl enable redis_sentinel
查看redis_sentinel状态
systemctl start redis_sentinel
systemctl status redis_sentinel
systemctl stop redis_sentinel
#如果_sentinel已经启动,则需要先停掉
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了