redis主从复制、哨兵

news/2024/5/18 13:07:04 标签: 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.conf

protected-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.niftyadmin.cn/n/5481595.html

相关文章

Android 四大组件启动

service: startService启动过程分析 - Gityuan博客 | 袁辉辉的技术博客 在整个startService过程,从进程角度看服务启动过程 Process A进程:是指调用startService命令所在的进程,也就是启动服务的发起端进程,比如点击桌面App图标…

LeetCode 1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心)

【LetMeFly】1702.修改后的最大二进制字符串:脑筋急转弯(构造,贪心) 力扣题目链接:https://leetcode.cn/problems/maximum-binary-string-after-change/ 给你一个二进制字符串 binary ,它仅有 0 或者 1 组…

35-3 使用dnslog探测fastjson漏洞

一、DNSLog 原理 DNSLog是一种记录在DNS上的域名相关信息的机制,类似于日志文件,记录了对域名或IP的访问信息。了解多级域名的概念对理解DNSLog至关重要。因特网采用树状结构的命名方法,按照组织结构划分域,每个域都是名字空间中被管理的一个划分,可以进一步划分为子域。域…

springboot+nodejs+vue残联残疾人信息服务系统django+python设计与实现

前端开发框架:vue.js 框架支持:django/sprinngboot/php/Ssm/flask/express均支持 语言:pythonjavanode.jsphp均支持 数据库 mysql 版本不限 数据库工具:Navicat/SQLyog等都可以 运行软件:idea/eclipse/vscode/pycharm/wamp/phpstudy均支持 设计框架&…

tcp 为什么要三次握手

TCP三次握手流程: 首先客户端发起请求,想服务端发送SYN报文服务端接收到客户端请求过后,产生SYNACK报文,并将SYNACK报文返回给客户端客户端收到SYNACK报文之后将此报文再发回服务端,至此三次握手完成,连接…

鸿蒙开发 一 (二)、熟悉鸿蒙之剑 ArkTS

ArkTS是HarmonyOS主要应用开发语言,以后也别在弄那个 java 和鸿蒙的混合版了, 没必要浪费时间, 一步到位, 学新的吧。 简介 ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保…

90天玩转Python—16—基础知识篇:面向对象知识详解

90天玩转Python系列文章目录 90天玩转Python—01—基础知识篇:C站最全Python标准库总结 90天玩转Python--02--基础知识篇:初识Python与PyCharm 90天玩转Python—03—基础知识篇:Python和PyCharm(语言特点、学习方法、工具安装) 90天玩转Python—04—基础知识篇:Pytho…

SpringBoot和Vue2项目配置https协议

1、SpringBoot项目 ① 去你自己的云申请并下载好相关文件,SpringBoot下载的是Tomcat(默认),Vue2下载的是Nginx ② 将下载的压缩包里面的.pfx后缀文件拷贝到项目的resources目录下 ③ 编辑配置文件 (主要是框里面的内…