Redis-Sentinel哨兵模式
时间:2021-07-12
本文章向大家介绍Redis-Sentinel哨兵模式,主要包括Redis-Sentinel哨兵模式使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
操作系统:CentOS Linux release 7.6.1810 (Core)
Redis版本:redis-6.2.4
- 机器地址:
IP | Redis端口 | sentinel端口 |
---|---|---|
192.168.174.7(master) | 6379 | 26379 |
192.168.174.8(slave-1) | 6379 | 26379 |
192.168.174.9(slave-2) | 6379 | 26379 |
- 配置主从
三个配置文件基本一样,不同之处如下:
Master :
# redis.conf
requirepass 123456
bind 192.168.174.7
Slave-1:
# redis.conf
bind 192.168.174.8
requirepass 123456
masterauth 123456
replica-read-only yes
replica-priority 100
replicaof 192.168.174.7 6379
Slave-2:
# redis.conf
bind 192.168.174.9
requirepass 123456
masterauth 123456
replica-read-only yes
replica-priority 100
replicaof 192.168.174.7 6379
查看master的info信息:
# Replication
role:master
connected_slaves:2
slave0:ip=192.168.174.8,port=6379,state=online,offset=308,lag=0
slave1:ip=192.168.174.9,port=6379,state=online,offset=308,lag=0
master_failover_state:no-failover
master_replid:0ee0e53ee92953e79cbf6e00ef96c49d2f5e9fa8
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:308
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:308
- 哨兵模式
Master 配置文件
port 26379
daemonize no
pidfile /var/run/redis-sentinel.pid
logfile "/application/redis-6.2.4/log/redis-sentinel.log"
dir /tmp
sentinel monitor mymaster 192.168.174.7 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
acllog-max-len 128
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no
参数解释:
sentinel monitor <master-name> <ip> <port> <quorum>:
master-name:监控的名字(任意)
ip port:master节点ip端口,不需要配置从节点信息
quorum:代表要判定主节点最终不可达所需要的票数
sentinel down-after-milliseconds <master-name> <times>:
每个Sentinel节点都要通过定期发送ping命令来判断Redis数据节点和其余Sentinel节点是否可达,如果超过了down-after-milliseconds配置的时间且没有有效的回复,则判定节点不可达,<times>(单位为毫秒)
sentinel parallel-syncs <master-name> <nums>:
故障转移后每次向新的主节点发起复制操作的从节点个数
sentinel failover-timeout <master-name> <times>:
故障转移超时时间
sentinel auth-pass <master-name> <password>:
master节点的密码
sentinel notification-script <master-name> <script-path>:
在故障转移期间,当一些警告级别的Sentinel事件发生(指重要事件,例如-sdown:客观下线、-odown:主观下线)时,会触发对应路径的脚本,并向脚本发送相应的事件参数
sentinel client-reconfig-script <master-name> <script-path>:
在故障转移结束后,会触发对应路径的脚本,并向脚本发送故障转移结果的相关参数。和notification-script类似
Slave-01配置文件:
port 26379
daemonize no
pidfile /var/run/redis-sentinel.pid
logfile "/application/redis-6.2.4/log/redis-sentinel.log"
dir /tmp
sentinel monitor mymaster 192.168.174.7 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
acllog-max-len 128
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no
Slave-02配置文件:
port 26379
daemonize no
pidfile /var/run/redis-sentinel.pid
logfile "/application/redis-6.2.4/log/redis-sentinel.log"
dir /tmp
sentinel monitor mymaster 192.168.174.7 6379 2
sentinel auth-pass mymaster 123456
sentinel down-after-milliseconds mymaster 30000
acllog-max-len 128
sentinel parallel-syncs mymaster 1
sentinel failover-timeout mymaster 180000
sentinel deny-scripts-reconfig yes
SENTINEL resolve-hostnames no
SENTINEL announce-hostnames no
启动命令:
# 依次启动
./src/redis-sentinel ./sentinel.conf
注意:当master下线后,在上线时注意配置文件主从配置已重置,需要重新配置。
原文地址:https://www.cnblogs.com/os-linux/p/15003359.html
- oracle数据库 如何查询某个表的约束条件
- 结构体存入文件并且取出
- 【Go 语言社区】使用 Redis 实现排行榜功能
- 使用12c PDB整合环境的总结 (r10笔记第66天)
- 【Go 语言社区】Redis(ZADD)简单排名
- C得到文件的大小
- 【Go 语言社区】Go语言实现选择法排序实例
- 【Go 语言社区】Go语言转换所有字符串为大写或者小写的方法
- Go语言按字节截取字符串的方法
- Go语言中字符串的查找方法小结
- 优化算法——遗传算法
- 每秒执行6000的简单SQL优化(一)(r10笔记第62天)
- 【Go 语言社区】在golang里实现类似try catch 的异常处理机制
- 每秒执行6000的简单SQL优化(二) (r10笔记第65天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 再谈分布式服务架构
- VBA解析复合文档08——应用-解析Thumbs.db
- pyecharts 嵌入 PyQt5
- CS学习笔记 | 15、枚举的命令和方法
- WFD_RTSP交互包分析
- Linux阅码场 - Linux内核月报(2020年07月)
- WifiDisplay(Miracast)技术原理及实现
- Java常用设计模式--观察者模式(Observer Pattern)
- Java常用设计模式--适配器模式(Adapter Pattern)
- Java常用设计模式--装饰器模式(Decorator Pattern)
- Java常用设计模式-单例模式(Singleton Pattern)
- Java常用设计模式--三种工厂模式之简单工厂模式(Simple Factory)
- Java常用设计模式--三种工厂模式之工厂模式(Factory Pattern)
- Java常用设计模式--三种工厂模式之抽象工厂模式(Abstract Factory Pattern)
- Mongodb只读副本集如何切换到读写模式