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
相关推荐
硅基手札8 分钟前
【Linux 内核专栏 17】进程间通信 IPC(上)— 管道·信号·System V IPC·mmap·文件锁
linux·运维·服务器·stm32·单片机·mcu
小能喵9 分钟前
kismet -h 帮助信息 中文版
linux·服务器·网络
seuzhouchenglong10 分钟前
服务器通过本地电脑连接本地开发板
运维·服务器
AR-26710-14 分钟前
Linux Day21——systemctl操作
linux·运维
额额额对了35 分钟前
Linux 驱动开发:基于 platform 总线 + misc 设备的 DS18B20 单总线温度驱动
linux·c语言·开发语言·驱动开发·嵌入式硬件
m4Rk_37 分钟前
【论文阅读】Agent 记忆机制(102):UMA——用多个未来问题端到端训练一份共享记忆
论文阅读·人工智能·学习·开源·github
木雷坞1 小时前
Docker Compose部署Metabase:应用库隔离与日期筛选看板
运维·docker·容器
讯捷蓝达1 小时前
台山曙光I620-G20服务器RAID5离线数据恢复全过程
运维·服务器
tedcloud1231 小时前
Docker Compose 部署 Immich:手机照片自动备份与常见故障排查
运维·前端·docker·容器·智能手机·开源·流程图
Android系统攻城狮1 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_activate调用流程与实战(七十九)
linux·运维·服务器·gstreamer音视频·gstreamer音视频进阶