当前位置: 首页 > news >正文

Redis 源码 tar 包安装 Redis 哨兵模式(Sentinel)

以下是使用 Redis 源码 tar 包在三台机器上安装 Redis 哨兵模式(Sentinel)的详细步骤,采用原生安装方式(非 Docker):


环境准备

  • 三台 CentOS/Ubuntu 服务器(假设 IP 如下):
    • node1: 192.168.1.10 (主节点)
    • node2: 192.168.1.11 (从节点)
    • node3: 192.168.1.12 (从节点)
  • Redis 版本:7.0.12(以最新稳定版为例)
  • 端口规划
    • Redis: 6379
    • Sentinel: 26379

1. 在所有节点安装 Redis

(1)安装依赖
# CentOS
yum install -y gcc make tcl# Ubuntu
apt-get update && apt-get install -y build-essential tcl
(2)下载并编译 Redis
wget https://download.redis.io/releases/redis-7.0.12.tar.gz
tar xzf redis-7.0.12.tar.gz
cd redis-7.0.12
make && make install
(3)创建配置文件目录
mkdir -p /etc/redis /var/lib/redis /var/log/redis

2. 配置主节点(node1)

(1)编辑 Redis 配置文件
vim /etc/redis/redis.conf

关键配置

bind 0.0.0.0
port 6379
daemonize yes
pidfile /var/run/redis_6379.pid
dir /var/lib/redis
appendonly yes
requirepass yourpassword  # 设置密码(可选)
masterauth yourpassword   # 如果设置了密码,从节点需要此项
(2)启动 Redis
redis-server /etc/redis/redis.conf

3. 配置从节点(node2 和 node3)

(1)编辑 Redis 配置文件
vim /etc/redis/redis.conf

额外添加

replicaof 192.168.1.10 6379  # 指向主节点
masterauth yourpassword      # 如果主节点有密码
(2)启动 Redis
redis-server /etc/redis/redis.conf

4. 配置 Sentinel(所有节点)

(1)编辑 Sentinel 配置文件
vim /etc/redis/sentinel.conf

内容如下

port 26379
daemonize yes
sentinel monitor mymaster 192.168.1.10 6379 2
sentinel down-after-milliseconds mymaster 5000
sentinel failover-timeout mymaster 10000
sentinel auth-pass mymaster yourpassword  # 如果主节点有密码
(2)启动 Sentinel
redis-sentinel /etc/redis/sentinel.conf

5. 验证集群

(1)检查主从复制
# 在主节点执行
redis-cli info replication

输出应显示:

role:master
connected_slaves:2
slave0:ip=192.168.1.11,port=6379,state=online
slave1:ip=192.168.1.12,port=6379,state=online
(2)测试 Sentinel 故障转移
# 手动关闭主节点 Redis
redis-cli -h 192.168.1.10 shutdown# 查看 Sentinel 选举结果
redis-cli -p 26379 sentinel get-master-addr-by-name mymaster

约 10 秒后应返回新的主节点 IP。


6. 设置开机自启(所有节点)

(1)创建 systemd 服务文件
vim /etc/systemd/system/redis.service

内容

[Unit]
Description=Redis
After=network.target[Service]
Type=forking
ExecStart=/usr/local/bin/redis-server /etc/redis/redis.conf
ExecStop=/usr/local/bin/redis-cli shutdown
Restart=always[Install]
WantedBy=multi-user.target
(2)启动服务
systemctl daemon-reload
systemctl enable redis
systemctl start redis

关键配置说明

参数作用
sentinel monitor mymaster...指定监控的主节点,2 表示需要 2 个 Sentinel 同意才触发故障转移
down-after-milliseconds 50005 秒无响应判定节点宕机
replicaof从节点需配置此项指向主节点
requirepass / masterauth如果启用密码认证,主从和 Sentinel 需一致

常见问题解决

  1. 主从无法同步

    • 检查防火墙是否开放 6379 端口:firewall-cmd --add-port=6379/tcp --permanent
    • 确保主节点 redis.confbind 0.0.0.0
  2. Sentinel 不触发故障转移

    • 确认至少有两个 Sentinel 能联通主节点
    • 检查 sentinel.conf 中的主节点 IP 和密码是否正确
  3. 从节点无法提升为主节点

    • 确保 redis.conf 中未设置 replica-read-only no(从节点默认只读)

扩展建议

  • 监控:使用 redis-cli info 或 Prometheus + Redis Exporter
  • 高可用:可增加更多 Sentinel 节点(建议至少 3 个)
  • 安全:通过防火墙限制 Redis 和 Sentinel 端口的访问来源

此方案适合生产环境,如需更自动化部署,可结合 Ansible 或 Shell 脚本批量操作。

http://www.dtcms.com/a/265440.html

相关文章:

  • Go调度器的抢占机制:从协作式到异步抢占的演进之路|Go语言进阶(7)
  • 价值实证:数字化转型标杆案例深度解析
  • 网络地址与子网划分:一次性搞清 CIDR、VLSM 和子网掩码
  • 分类树查询性能优化:从 2 秒到 0.1 秒的技术蜕变之路
  • 如何在 IDEA 中设置类路径
  • 探索具身智能新高度——机器人在数据收集与学习策略中的优势和机会
  • Objective-C UI事件处理全解析
  • c++中的绑定器
  • 如何使用AI改进论文写作 ---- 引言篇(2)
  • 设计模式系列(10):结构型模式 - 桥接模式(Bridge)
  • AutoMedPrompt的技术,自动优化提示词
  • 【小技巧】Python + PyCharm 小智AI配置MCP接入点使用说明(内测)( PyInstaller打包成 .exe 可执行文件)
  • Spring Boot + 本地部署大模型实现:基于 Ollama 的集成实践
  • Jetson边缘计算主板:Ubuntu 环境配置 CUDA 与 cudNN 推理环境 + OpenCV 与 C++ 进行目标分类
  • 【Note】《深入理解Linux内核》Chapter 9 :深入理解 Linux 内核中的进程地址空间管理机制
  • MySQL数据库----DML语句
  • 深度学习新星:Mamba网络模型与核心模块深度解析
  • Python入门Day2
  • 【第三章:神经网络原理详解与Pytorch入门】01.神经网络算法理论详解与实践-(3)神经网络中的前向传播、反向传播的原理与实现
  • Python中`import` 语句的执行涉及多个步骤
  • 【Python】批量提取超声波检查图片的某一行数据
  • Docker 容器如何实现资源限制(如 CPU 和内存)
  • MacOS Safari 如何打开F12 开发者工具 Developer Tools
  • 【C++】状态模式
  • 好用的自带AI功能的国产IDE
  • Go与Python爬虫对比及模板实现
  • 信刻光盘安全隔离与文件单向导入/导出系统
  • 高压电缆护层安全的智能防线:TLKS-PLGD 监控设备深度解析
  • NVIDIA Spectrum-3 SN4000 系列SN4000 SN4000 系列速度高达 400Gb/秒的现代横向扩展分布式数据中心应用提供支持。
  • 站在 Java 程序员的角度如何学习和使用 AI?从 MVC 到智能体,范式变了!