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

redis主从复制、哨兵

目录

1. 主从复制

特点:

工作原理:

配置:

2. 哨兵

特点:

工作原理:

配置:

​编辑


1. 主从复制

特点:
  • 主从复制是 Redis 最基本的高可用性方案。
  • 主节点(Master)负责处理写操作和读操作。
  • 从节点(Slave)复制主节点的数据,并可以用于读操作。
  • 从节点还可以在主节点不可用时接替主节点的功能。
工作原理:
  • 从节点会向主节点发送 SYNC 命令请求进行复制。
  • 主节点在收到 SYNC 命令后,开始将快照文件和增量数据发送给从节点。
  • 从节点收到数据后,进行初始化复制和增量复制。
  • 主从复制提供了数据备份、负载均衡和故障恢复的功能。
配置:

修改master配置文件

vim /etc/redis/6379.conf 
bind 0.0.0.0
daemonize yes
logfile /var/log/redis_6379.log
dir /var/lib/redis/6379
appendonly yes/etc/init.d/redis_6379 restart
  • bind 0.0.0.0:表示 Redis 将会监听所有网络接口上的连接,这样可以从任何 IP 地址访问 Redis。
  • daemonize yes:表示 Redis 以守护进程模式运行。
  • logfile /var/log/redis_6379.log:设置 Redis 日志文件路径。
  • dir /var/lib/redis/6379:设置 Redis 数据库文件(RDB 文件)存放路径。
  • appendonly yes:开启 AOF(Append Only File)持久化模式,确保每个写操作都会被追加到文件末尾,可以防止数据丢失。

修改slave配置文件

vim /etc/redis/6379.conf
bind 0.0.0.0
daemonize yes
logfile /var/log/redis_6379.log
dir /var/lib/redis/6379
replicaof 192.168.1.22 6379
appendonly yes/etc/init.d/redis_6379 restart
  • bind 0.0.0.0:监听所有网络接口。
  • daemonize yes:以守护进程模式运行。
  • logfile /var/log/redis_6379.log:日志文件路径。
  • dir /var/lib/redis/6379:数据文件存储路径。
  • replicaof 192.168.1.22 6379:指定这个 Redis 实例为从节点,复制主节点 192.168.1.22:6379 的数据。
  • appendonly yes:开启 AOF 持久化。

2. 哨兵

特点:
  • 哨兵是 Redis 的自动故障转移和监控系统。
  • 一个或多个哨兵监视 Redis 主从复制集群中的主节点和从节点。
  • 当主节点不可用时,哨兵会自动选举一个从节点作为新的主节点。
  • 新的主节点选举完成后,哨兵会通知其他从节点进行切换。
工作原理:
  • 哨兵通过 Sentinel 集群来监控 Redis 实例的健康状态。
  • 如果主节点不可用,哨兵会通过投票的方式选举一个从节点成为新的主节点。
  • 哨兵会通知其他节点进行切换,并更新配置信息。
  • 哨兵还能够对 Redis 集群进行监控和报警。
配置:

在主从复制的基础上配置哨兵模式,在所有节点配置

vim /opt/redis-5.0.7/sentinel.confprotected-mode no
port 26379
daemonize yes
logfile /var/log/sentinel.log
dir /var/lib/redis/6379
sentinel monitor mymaster 192.168.1.22 6379 2
sentinel down-after-milliseconds mymaster 30000
sentinel failover-timeout mymaster 180000
  • protected-mode no:关闭保护模式,允许 Sentinel 通过网络连接到 Redis 实例。

  • port 26379:指定 Sentinel 监听的端口号,通常是 26379

  • daemonize yes:以守护进程模式运行 Sentinel,不占用控制台。

  • logfile /var/log/sentinel.log:指定 Sentinel 的日志文件路径和名称。

  • dir /var/lib/redis/6379:指定 Sentinel 使用的工作目录,这个目录用于保存 Sentinel 运行时的状态信息。

  • sentinel monitor mymaster 192.168.1.22 6379 2

    • 这个配置用于设置监控的主节点信息。
    • mymaster 是监控的主节点的名称。
    • 192.168.1.22 6379 是主节点的地址和端口。
    • 2 表示至少需要2个 Sentinel 同意主节点失效才会触发故障转移。
  • sentinel down-after-milliseconds mymaster 30000

    • 这个配置用于设置 Sentinel 认为主节点失效需要经过的毫秒数。
    • 在主节点失效后,需要至少等待 30000 毫秒(30秒)才会开始故障转移。
  • sentinel failover-timeout mymaster 180000

    • 这个配置用于设置 Sentinel 故障转移的超时时间。
    • 如果在 180000 毫秒(180秒)内没有成功完成故障转移,那么故障转移会被放弃。

查看哨兵状态

redis-cli -p 26379 info Sentinel

http://www.lryc.cn/news/337150.html

相关文章:

  • uniapp登录拦截白名单使用
  • 力扣45. 跳跃游戏 II
  • MXNet安装:专业指南与深度解析
  • C++函数模板案例--数组封装
  • 传统文字检测方法+代码实现
  • Jmeter从数据为查找结果集数据方法随笔
  • Objective-C网络请求开发的高效实现方法与技巧
  • Java:OOP之术语或概念
  • 内存地产风云录:malloc、free、calloc、realloc演绎动态内存世界的楼盘开发与交易大戏
  • 个人博客项目笔记_05
  • 基础知识点全覆盖(1)
  • 异常处理java
  • 个人博客项目_09
  • 【2024年MathorCup数模竞赛】C题赛题与解题思路
  • 蓝桥杯省赛冲刺(3)广度优先搜索
  • 网页内容生成图片,这18般武艺你会几种呢?
  • pytest的时候输出一个F后面跟很多绿色的点解读
  • 算法打卡day33
  • 《疯狂java讲义》Java AWT图形化编程中文显示
  • Python3 标准库,API文档链接
  • 【Web】CTFSHOW-ThinkPHP5-6反序列化刷题记录(全)
  • AR智能眼镜方案_MTK平台安卓主板芯片|光学解决方案
  • Android网络抓包--Charles
  • 【LeetCode热题100】238. 除自身以外数组的乘积(数组)
  • 《哈迪斯》自带的Lua解释器是哪个版本?
  • Java内存泄漏内存溢出
  • 【springboot】项目启动时打印全部接口方法
  • 单例19c RMAN数据迁移方案
  • 05—面向对象(上)
  • 【LeetCode热题100】【链表】两数相加