Redis(五)Redis的高可用方案【哨兵】
时间:2021-08-04
本文章向大家介绍Redis(五)Redis的高可用方案【哨兵】,主要包括Redis(五)Redis的高可用方案【哨兵】使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
一、哨兵架构
架构图
- sentinel哨兵是特殊的redis服务,不提供读写服务,主要用来监控redis实例节点。
- 哨兵架构下客户端第一次需要从哨兵找出redis的主节点
- 后续就直接访问redis的主节点,不会每次都通过 sentinel代理访问redis的主节点
- 当redis的主节点发生变化,哨兵会第一时间感知到,并且将新的redis主节点通知给客户端
PS:这里面redis的客户端一般都实现了订阅功能,订阅sentinel发布的节点变动消息
构建步骤
1、创建一个新的目录,模拟用【从根目录开始演示】
cd zhTools/redis-5.0.3/zhRedisDemo
mkdir sentinel #创建主从模式的目录
cd sentinel
mkdir 26380 #用于存放6380端口的数据【哨兵1】
mkdir 26381 #用于存放6381端口的数据【哨兵2】
mkdir 26382 #用于存放6381端口的数据【哨兵3】
2、把redis的哨兵文件复制3份分别放到对应的目录下【从根目录开始演示】
cd zhTools/redis-5.0.3
cp sentinel.conf zhRedisDemo/sentinel/26380/sentinel-26380.conf
cp sentinel.conf zhRedisDemo/sentinel/26381/sentinel-26381.conf
cp sentinel.conf zhRedisDemo/sentinel/26382/sentinel-26382.conf
3、进入26380目录,并修改sentinel-26380.conf【另外两台配置类似】
port 26380 #端口
daemonize yes #守护线程方式启动【后台运行】
pidfile "/var/run/redis‐sentinel‐26380.pid" #把pid进程号写入pidfile配置的文件
logfile "26380.log" #日志文件存放在当前目录
dir /root/zhTools/redis-5.0.3/zhRedisDemo/sentinel/26380/data # 指定数据存放目录
sentinel monitor mymaster 120.24.58.161 26380 2 #配置监控的主机ip,mymaster这个名字随便取,客户端访问时会用到。
PS:最后的2表示明当有多少个sentinel认为一个master失效时,master才算真正失效(值一般为:sentinel总数/2 + 1)
sentinel auth-pass mymaster xxxxxxx #如果主节点设置了密码,需要设置这个属性
PS:sentinel不能分别为master和slave设置不同的密码,因此master和slave的密码应该设置相同。
4、使用配置文件分别启动3个哨兵
redis‐sentinel sentinel‐26380.conf
redis‐sentinel sentinel‐26381.conf
redis‐sentinel sentinel‐26382.conf
5、连接上哨兵,即可查看集群信息是否搭建完成
redis‐cli ‐p 26380
127.0.0.1:26380>info
原文地址:https://www.cnblogs.com/riches/p/15095445.html
- 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 数组属性和方法
- PHP实现数据四舍五入的方法小结【4种方法】
- 如何在Windows中安装多个python解释器
- PHP设计模式之抽象工厂模式实例分析
- 使用python matploblib库绘制准确率,损失率折线图
- Django REST Swagger实现指定api参数
- matplotlib.pyplot.matshow 矩阵可视化实例
- php+mysql开发的最简单在线题库(在线做题系统)完整案例
- python中元组的用法整理
- PHP错误提示It is not safe to rely on the system……的解决方法
- PHP使用mysqli同时执行多条sql查询语句的实例
- 在tensorflow下利用plt画论文中loss,acc等曲线图实例
- PHP生成短网址的思路以及实现方法的详解
- ThinkPHP 3.2.3实现加减乘除图片验证码
- Python数据相关系数矩阵和热力图轻松实现教程
- PHP中md5()函数的用法讲解