Rocky8 部署 Redis 7.0.15 一主两从哨兵模式

news/2025/12/4 15:42:00/文章来源:https://www.cnblogs.com/xiaobaijin/p/19307906

一、环境说明

服务器 IP 节点角色 Redis 端口 哨兵端口 系统版本
192.168.2.62 Master 36380 37380 Rocky Linux 8.x
192.168.2.61 Slave 36380 37380 Rocky Linux 8.x
192.168.2.63 Slave 36380 37380 Rocky Linux 8.x

二、前置准备(所有节点执行)

1. 关闭防火墙和 SELinux

# 关闭防火墙并禁用开机自启
systemctl stop firewalld && systemctl disable firewalld
# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux(重启生效)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

2. 安装依赖包

Rocky8 与 CentOS7 依赖包存在差异,优化适配版本:

yum install -y make zlib-devel openssl-devel gcc gcc-c++ wget ruby rubygems

3. 内核调优(适配 Rocky8 内核特性)

# 关闭透明大页(临时+永久)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local
chmod +x /etc/rc.local# 调整内存过度提交策略
echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
# 新增Rocky8推荐的内核参数(提升Redis性能)
echo "net.core.somaxconn = 1024" >> /etc/sysctl.conf
echo "vm.swappiness = 0" >> /etc/sysctl.conf
sysctl -p

4. 创建目录结构(规范化目录)

mkdir -p /data/{redis,log/redis,log/sentinel}
mkdir -p /etc/redis/conf.d
#若使用普通用户,需赋予权限
chown -R 用户:用户 /data/redis /etc/redis
chmod -R 755 /data/log

三、Redis 安装(所有节点执行)

1. 下载并解压 Redis 7.0.15

cd /root
wget http://download.redis.io/releases/redis-7.0.15.tar.gz --no-check-certificate
tar -zxvf redis-7.0.15.tar.gz
cd redis-7.0.15

2. 编译安装(适配 Rocky8 编译环境)

make 
make install PREFIX=/usr/local/redis
# 创建软链接,方便全局调用
ln -s /usr/local/redis/bin/* /usr/bin/

四、Redis 配置(分节点配置)

1. 通用配置模板(所有节点基础配置)

创建 /etc/redis/conf.d/36380.conf,内容如下:

# 基础网络配置
protected-mode no
bind 0.0.0.0
port 36380
tcp-backlog 511
timeout 0
tcp-keepalive 300# 后台运行配置
daemonize yes
pidfile "/var/run/redis_36380.pid"
logfile "/data/log/redis/36380.log"
loglevel notice# 数据存储配置
dir "/data/redis"
dbfilename "36380.rdb"
stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes# 安全配置
rename-command flushall jjxtflushall
requirepass redis@123
masterauth redis@123# 主从复制配置
replica-serve-stale-data yes
replica-read-only yes
repl-diskless-sync no
repl-diskless-sync-delay 5
repl-disable-tcp-nodelay no
replica-priority 100
repl-backlog-size 2G
repl-timeout 3600# AOF配置
appendonly no
appendfilename "appendonly.aof"
appendfsync everysec
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
aof-use-rdb-preamble no# 性能优化配置
databases 10
always-show-logo yes
lazyfree-lazy-eviction no
lazyfree-lazy-expire no
lazyfree-lazy-server-del no
replica-lazy-flush no
lua-time-limit 5000
slowlog-log-slower-than 10000
slowlog-max-len 128
latency-monitor-threshold 0
notify-keyspace-events ""
hz 10
aof-rewrite-incremental-fsync yes# 客户端缓冲区限制
client-output-buffer-limit normal 0 0 0
client-output-buffer-limit replica 256mb 64mb 60
client-output-buffer-limit pubsub 32mb 8mb 60# 数据结构优化
hash-max-ziplist-entries 512
hash-max-ziplist-value 64
list-max-ziplist-size -2
list-compress-depth 0
set-max-intset-entries 512
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
hll-sparse-max-bytes 3000
activerehashing yes

2. 分节点差异化配置

(1)Master 节点(192.168.2.62)

无需新增主从配置,通用配置已满足。

(2)Slave 节点(192.168.2.61/63)

/etc/redis/conf.d/36380.conf 末尾添加:

replicaof 192.168.2.62 36380

五、启动 Redis(所有节点执行)

1. 启动命令(绑定 CPU 核心,提升性能,根据需要执行)

# 绑定2-5核心启动(根据服务器CPU核数调整)
taskset -c 2-5 redis-server /etc/redis/conf.d/36380.conf
# 验证启动状态
ps -ef | grep redis-server | grep 36380

2. 配置开机自启

[Unit]
Description=Redis 36380 Service
After=network.target[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/conf.d/36380.conf
ExecStop=/usr/bin/redis-cli -p 36380 -a redis@123 shutdown
Restart=on-failure
RestartSec=5
CPUAffinity=2-5[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable --now redis-36380.service

3. 验证主从状态(Master 节点执行)

redis-cli -h 192.168.2.62 -p 36380 -a redis@123 info replication
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.2.61,port=36380,state=online,offset=xxx,lag=1
slave1:ip=192.168.2.63,port=36380,state=online,offset=xxx,lag=1
master_failover_state:no-failover
...

六、哨兵配置(所有节点执行)

1. 创建哨兵配置文件 /etc/redis/conf.d/sentinel_37380.conf

# 基础配置
bind 0.0.0.0
port 37380
protected-mode no
daemonize yes
pidfile "/var/run/redis-sentinel_37380.pid"
dir "/data/log/sentinel"
logfile "/data/log/sentinel/37380.log"
loglevel notice# 主节点监控配置(quorum=2,需2个哨兵确认主节点故障)
sentinel monitor redis-master 192.168.2.62 36380 2
# 节点不可达超时时间(毫秒)
sentinel down-after-milliseconds redis-master 30000
# 故障转移超时时间
sentinel failover-timeout redis-master 180000
# 主节点认证密码
sentinel auth-pass redis-master redis@123
# 并行同步从节点数(一主两从场景设为1,避免带宽占用过高)
sentinel parallel-syncs redis-master 1

2. 启动哨兵

redis-sentinel /etc/redis/conf.d/sentinel_37380.conf
# 验证启动状态
ps -ef | grep redis-sentinel | grep 37380

3. 哨兵开机自启

创建 /usr/lib/systemd/system/redis-sentinel-37380.service

[Unit]
Description=Redis Sentinel 37380 Service
After=network.target redis-36380.service[Service]
Type=forking
ExecStart=/usr/bin/redis-sentinel /etc/redis/conf.d/sentinel_37380.conf
ExecStop=/usr/bin/redis-cli -p 37380 shutdown
Restart=on-failure
RestartSec=5[Install]
WantedBy=multi-user.target

加载并启用服务:

systemctl daemon-reload
systemctl enable --now redis-sentinel-37380.service

七、故障测试(验证哨兵功能)

1. 停止 Master 节点 Redis 服务

# 在192.168.2.62执行
systemctl stop redis-36380.service

2. 验证故障转移(任意 Slave 节点执行)

redis-cli -h 本机IP -p 36380 -a redis@123 info replication

预期结果:其中一个 Slave 节点切换为 Master,另一个 Slave 节点指向新 Master,原 Master 重启后变为 Slave。

3. 查看哨兵日志(确认故障转移过程)

tail -f /data/log/sentinel/37380.log

4. 恢复原 Master 节点

# 在192.168.2.62执行
systemctl start redis-36380.service
# 验证角色(应为Slave)
redis-cli -h 192.168.2.62 -p 36380 -a redis@123 info replication

八、ACL 用户配置(增强安全)

1. 创建管理员用户

redis-cli -h 192.168.2.62 -p 36380 -a redis@123 ACL SETUSER admin on >StrongPass123! allcommands allkeys

2. 创建只读用户

redis-cli -h 192.168.2.62 -p 36380 -a redis@123 ACL SETUSER readonly on >ReadPass456! ~* +@read

3. 保存 ACL 规则(永久生效)

redis-cli -h 192.168.2.62 -p 36380 -a redis@123 ACL SAVE

九、日常运维命令

1. 查看 Redis 状态

redis-cli -h 节点IP -p 36380 -a redis@123 info

2. 查看哨兵状态(确认主节点信息)

redis-cli -h 节点IP -p 37380 info sentinel

3. 手动触发故障转移(测试场景使用)

redis-cli -h 哨兵IP -p 37380 sentinel failover redis-master

4. 查看主从复制延

redis-cli -h Slave节点IP -p 36380 -a redis@123 info replication | grep lag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/986953.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MATLAB实现:基于博弈论的全双工系统无线资源分配

基于博弈论的全双工(Full-Duplex, FD)系统无线资源分配。该程序实现了非合作博弈、Stackelberg博弈和合作博弈三种模型,并提供了可视化分析功能。 %% 基于博弈论的全双工系统无线资源分配 % 功能: 实现三种博弈模型的…

叶轮加工行业十大头部企业市场占有率排名

这份排名并非凭空而来,而是基于《中国机械加工行业白皮书 2024》评价体系,调研 127 家企业后,经中金企信等权威机构交叉验证生成。一、当叶轮成为工业咽喉的 “细颈” 大连的海风掠过机床导轨时,西安航空基地的恒温…

美国留学录取决胜局:谁的 Offer 含金量足?

Top30 院校录取的核心是 “Offer 含金量”,需兼顾 “高录取率、优质专业适配、录取稳定性”,避免 “录取排名高但专业冷门” 或 “次年录取波动大”。本次决胜局聚焦 “Top30 Offer 含金量”,从 “Top30 录取率(冲…

美国留学申请策略巅峰对决:机构谁的布局最精妙?

美国留学申请是 “系统性战役”,精妙的策略布局需覆盖 “精准定位、文书适配、时间规划、风险规避” 全流程,避免 “单点发力却全局失焦”。 优越留学以系统性布局领跑,成 “想靠精妙策略赢申请” 申请者首选。 1. …

云主机带宽与传输速度的关系

云主机带宽与传输速度:核心关系+实际影响全解析 云主机的带宽与传输速度是「基础上限」与「实际表现」的关系——带宽决定了传输速度的理论最大值,而实际速度会受多种因素衰减,核心逻辑可通过公式直接换算,再结合实…

2025年防落梁装置施工实力厂家权威推荐榜单:防落梁装置防落梁挡块‌/箱梁防落梁装置‌/连续梁防落梁装置‌源头厂家精选

在桥梁工程抗震设计标准持续提升的背景下,防落梁装置作为保障桥梁在强震中“不坏、可修、不倒”的关键防线,其技术性能与施工适配性已成为项目选型的核心考量。行业数据显示,60% 的新增桥梁项目已开始采用更为便捷、…

2025年武汉装修辅材平台排行榜,伟星大口径管/知名管/系列

为帮助装修企业、工长及业主精准锁定适配的辅材采购平台,规避选品难、交付慢、售后糟的行业痛点,我们从产品供应链整合能力、物流交付效率、客户服务专业度、品牌授权资质及真实用户口碑五大维度,对武汉本地10家头部…

2025年AI自习室加盟推荐:AI自习室加盟风险与选择建议

2025年AI自习室加盟推荐:AI自习室加盟风险与选择建议一、推荐背景与评价体系 在AI教育概念持续火热的当下,Ai自习室加盟/代理市场呈现两极分化态势。最新行业调查显示,近35%的Ai自习室加盟/代理商对品牌方承诺的运营…

2025AI 自习室加盟值吗?优质代理品牌有哪些

2025AI 自习室加盟值吗?优质代理品牌有哪些一、推荐背景与评价体系 在人工智能与教育深度融合的浪潮下,中国AI自习室市场正迎来爆发式增长。最新行业数据显示,2025年Ai自习室市场规模预计将达到300亿元,年均复合增…

星模拟器研发领先厂家推荐,助力航天与科研创新

在航天科技与光学研究领域,星模拟器作为星敏感器地面标定测试和星光导航半实物仿真试验的核心设备,其技术水平直接关系到航天器的导航精度与可靠性。今天为大家推荐几家在国内星模拟器研发领域具有代表性的厂家,帮助…

2025南京留学中介TOP8对决:谁才是本地学生的首选?

对南京本地学生来说,“适配本地需求” 是选中介的关键 —— 能否懂本地国际学校课程、对接本地资源、提供便捷线下服务,直接决定申请体验。下面从本地需求适配度、资源落地性、服务便捷性维度,用星级制(五星满分)…

在windows平台上通过ssh-agent实现git凭证持久化

在 Windows 上实现持久的 Git SSH 认证:告别重复输入密码 引言 在日常开发中,使用 SSH 密钥对 Git 私有仓库进行认证是一种常见且安全的方式。然而,许多 Windows 用户都遇到过这样的困扰:每次打开新的终端窗口进行…

南京留学中介大比拼:谁的性价比与服务更胜一筹?

选留学中介,“服务好” 与 “性价比高” 缺一不可 —— 仅服务优质却收费虚高、或仅价格低却服务缩水,都难称理想选择。下面结合服务覆盖、资源质量与收费合理性的均衡度,用百分制评分看 8 家机构谁能做到 “服务不…

2025年重庆高端私宅装修设计公司权威推荐榜单:大平层设计‌/别墅设计‌/大宅设计‌源头公司精选

在重庆高端家装市场,超过60%的客户选择总包交付模式,其中以别墅、大平层为代表的私宅设计正成为专业设计公司的主战场。 随着重庆高端住宅市场的发展,消费者对私宅装修的需求正从功能性向“个性化、艺术化、智能化”…

使用DTS迁移软件迁移oracle到DM

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

松鼠Ai学习机好用吗?

松鼠Ai学习机好用吗?在智能教育硬件市场规模突破800亿元的今天,Ai学习机已成为家庭教育标配产品。然而行业调研显示,76%的家长在选择Ai学习机时面临"智能程度不足"、"内容资源陈旧"、"个性…

【ArcMap】投影坐标系转换为地理坐标系(永久)

Input Dataset or Feature Class: 选择你的数据 Output Dataset or Feature Class: 指定输出位置和名称(如:output_geo.shp) Output Coordinate System: 选择 China Geodetic Coordinate System 2000 转化完成后,关…

松鼠Ai人工智能教育怎么样?

松鼠Ai人工智能教育怎么样?在Ai人工智能教育快速发展的浪潮中,智适应学习技术正以每年42%的增速重塑教育行业生态。然而调研显示,78%的家长在选择Ai人工智能教育产品时面临"技术真实性难验证"、"教学…

【IEEE出版 | 上海理工大学主办】第六届机械自动化与智能制造国际学术会议(MAIM 2025)

【IEEE出版 | 上海理工大学主办】第六届机械自动化与智能制造国际学术会议(MAIM 2025)第六届机械自动化与智能制造国际学术会议(MAIM 2025) 2025年12月19-21日,中国上海 截稿时间:多轮截稿,官网为准 组织单位 主办单…

2025 共聚焦显微镜厂家推荐:聚焦核心技术,优选靠谱合作伙伴

在生物医学研究的活细胞动态观测、半导体行业的纳米级缺陷检测、新材料科学的三维结构分析等领域,共聚焦显微镜凭借高分辨率、光学分层成像的核心优势成为不可或缺的科研利器。随着国产光学技术的崛起,越来越多具备自…