Linux下编译安装redis-哨兵模式

Linux下编译安装-哨兵模式

哨兵sentinel模式

sentinel相当于是一个投票者或者哨兵,它时刻监视着redis集群的各个服务器,当主master挂了之后,它将进行投票进行新master的选举。下图

Sentinel的工作方式

每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令

如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 down-after-milliseconds 选项所指定的值, 则这个实例会被 Sentinel 标记为主观下线。

如果一个Master被标记为主观下线,则正在监视这个Master的所有 Sentinel 要以每秒一次的频率确认Master的确进入了主观下线状态。

当有足够数量的 Sentinel(大于等于配置文件指定的值)在指定的时间范围内确认Master的确进入了主观下线状态, 则Master会被标记为客观下线

在一般情况下, 每个 Sentinel 会以每 10 秒一次的频率向它已知的所有Master,Slave发送 INFO 命令

当Master被 Sentinel 标记为客观下线时,Sentinel 向下线的 Master 的所有 Slave 发送 INFO 命令的频率会从 10 秒一次改为每秒一次

若没有足够数量的 Sentinel 同意 Master 已经下线, Master 的客观下线状态就会被移除。

若 Master 重新向 Sentinel 的 PING 命令返回有效回复, Master 的主观下线状态就会被移除。

主观下线和客观下线

主观下线(Subjectively Down, 简称 SDOWN)指的是单个 Sentinel 实例对服务器做出的下线判断。

客观下线(Objectively Down, 简称 ODOWN)指的是多个 Sentinel 实例在对同一个服务器做出 SDOWN 判断, 并且通过 SENTINEL is-master-down-by-addr 命令互相交流之后, 得出的服务器下线判断。

客观下线条件只适用于主服务器: 对于任何其他类型的 Redis 实例, Sentinel 在将它们判断为下线前不需要进行协商, 所以从服务器或者其他 Sentinel 永远不会达到客观下线条件。

只要一个 Sentinel 发现某个主服务器进入了客观下线状态, 这个 Sentinel 就可能会被其他 Sentinel 推选出, 并对失效的主服务器执行自动故障迁移操作。

环境介绍

安装环境

节点 IP OS Redis版本

Node1 192.168.2.1 CentOS release 6.5 (Final) redis-4.0.14

Node2 192.168.2.2 CentOS release 6.5 (Final) redis-4.0.14

Node3 192.168.2.3 CentOS release 6.5 (Final) redis-4.0.14

预装系统依赖包 -- 三个主机节点都需要安装

dart 复制代码
yum -y install gcc-c++ 
yum -y install tcl 

安装Redis

配置node1

上传Redis安装介质到 node1 节点,编译安装redis

dart 复制代码
tar -zxvf redis-4.0.14.tar.gz -C /tdx 
cd /tdx/redis-4.0.14 
make && make install 
mkdir log && mkdir run 

vi /tdx/redis-4.0.14/redis.conf
bind 0.0.0.0 
port 6379 
daemonize yes 
pidfile /tdx/redis-4.0.14/run/redis.pid 
logfile "tdx/redis-4.0.14/log/redis.log" 
vi /tdx/redis-4.0.14/sentinel.conf 
bind  192.168.2.1 127.0.0.1 
port 26379 
sentinel monitor mymaster 192.168.2.1 6379 2 
daemonize yes

配置node2

上传Redis安装介质到 node1 节点,编译安装redis

dart 复制代码
tar -zxvf redis-4.0.14.tar.gz -C /tdx 
cd /tdx/redis-4.0.14 
make && make install 
mkdir log && mkdir run 
vi tdx/redis-4.0.14/redis.conf 
bind 0.0.0.0 
port 6379 
daemonize yes 
pidfile /tdx/redis-4.0.14/run/redis_16379.pid 
logfile "tdx/redis-4.0.14/log/redis.log" 
slaveof 192.168.2.1 6379 
vi tdx/redis-4.0.14/sentinel.conf 
bind 127.0.0.1 192.168.2.2 127.0.0.1 
port 26379 
sentinel monitor mymaster 192.168.2.1 6379 2 
daemonize yes

配置node3

上传Redis安装介质到 node1 节点,编译安装redis

dart 复制代码
tar -zxvf redis-4.0.14.tar.gz -C /tdx 
cd /tdx/redis-4.0.14 
make && make install 
mkdir log && mkdir run 
vi /tdx/redis-4.0.14/redis.conf 
bind 0.0.0.0 
port 6379 
daemonize yes 
pidfile /tdx/redis-4.0.14/run/redis_16379.pid 
logfile "tdx/redis-4.0.14/log/redis.log" 
slaveof 192.168.2.1 6379 
vi /tdx/redis-4.0.14/sentinel.conf 
bind  192.168.2.3 127.0.0.1 
port 26379 
sentinel monitor mymaster 192.168.2.1 6379 2 
daemonize yes

配置防火墙

dart 复制代码
firewall-cmd --permanent --add-port=6379/tcp 
firewall-cmd --permanent --add-port=26379/tcp
firewall-cmd --reload 

启动服务

三个节点分别执行

dart 复制代码
cd /tdx/redis-4.0.14 
src/redis-server redis.conf && src/redis-sentinel sentinel.conf 

查看状态

三个节点分别执行

dart 复制代码
cd /tdx/redis-4.0.14 
src/redis-cli -h 127.0.0.1 -p 6379 info Replication
src/redis-cli -h 127.0.0.1 -p 6379 info Replication 
src/redis-cli -h 127.0.0.1 -p 6379 info Replication 

查看进程

dart 复制代码
ps aux | grep redis 

清空日志

dart 复制代码
truncate -s 0 redis.log
相关推荐
牧以南歌〆2 小时前
在Ubuntu主机中修改ARM Linux开发板的根文件系统
linux·arm开发·驱动开发·ubuntu
ai小鬼头2 小时前
Ollama+OpenWeb最新版0.42+0.3.35一键安装教程,轻松搞定AI模型部署
后端·架构·github
互联网搬砖老肖3 小时前
运维打铁: MongoDB 数据库集群搭建与管理
运维·数据库·mongodb
Antonio9153 小时前
【音视频】HLS简介与服务器搭建
运维·服务器·音视频
夜月yeyue3 小时前
设计模式分析
linux·c++·stm32·单片机·嵌入式硬件
kfepiza4 小时前
Debian的`/etc/network/interfaces`的`allow-hotplug`和`auto`对比讲解 笔记250704
linux·服务器·网络·笔记·debian
艾伦_耶格宇4 小时前
【docker】-1 docker简介
运维·docker·容器
R.X. NLOS4 小时前
VS Code远程开发新方案:使用SFTP扩展解决Remote-SSH连接不稳定问题
运维·服务器·ssh·debug·vs code
cuijiecheng20185 小时前
Ubuntu下布署mediasoup-demo
linux·运维·ubuntu
独行soc7 小时前
2025年渗透测试面试题总结-2025年HW(护网面试) 33(题目+回答)
linux·科技·安全·网络安全·面试·职场和发展·护网