redis主从复制、哨兵

本文详细介绍了Redis的主从复制原理、配置步骤,以及哨兵系统的功能、工作原理和配置方法。通过配置,Redis实现高可用性和自动故障转移,保证数据安全和服务连续性。
摘要由CSDN通过智能技术生成

目录

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

  • 15
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值