大数据-51 Redis 高可用方案CAP-AP 主从复制 一主一从 全量和增量同步 哨兵模式 docker-compose测试
创始人
2024-12-16 22:36:09
0

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (正在更新…)

章节内容

上节我们完成了:

  • Redis分布式锁
  • Redis SETNX
  • Redis Redisson
  • 分布式锁对比
  • Java的部分实现

在这里插入图片描述

高可用介绍

高可用(High Availability)通常用来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。
CAP中的AP模型。

主从复制

Redis支持主从复制功能,可以通过 slaveof(Redis5以后修改为replicaof)或者在配置文件中设置来开启该功能。

一主一从

在这里插入图片描述

一主多从

在这里插入图片描述

传递复制

在这里插入图片描述

主从配置

主Redis

无需特殊的配置

从Redis

我们需要修改 redis.conf 文件,来实现。
比如我的主Redis是h121机器,当前我当前在h122上,计划变为h121的从服务器,那你需要如下的配置:

replicaof h121.wzk.icu 6379 

主从作用

  • 读写分离:一主多从,主从同步,主写从读。
  • 数据容灾:从是主的备份。

同步模式

全量同步

  • 同步快照阶段:Master创建并发送RDB给Slave,Slave载入并解析快照,Master同时将此阶段所产生的新的写命令存储到缓冲区。
  • 同步写缓冲阶段:Master向Slave同步存储在缓冲区的写操作命令
  • 同步增量阶段:Master向Slave同步写操作命令。

在这里插入图片描述

增量同步

  • Redis增量同步主要是Slave完成初始化正常工作后,Master的写操作同步到Slave
  • 通常情况下, Master每次执行一个写命令就会向Slave发送相同的写命令,然后Slave执行。

心跳监测

在命令阶段,从服务器默认会以每秒一次的频率向主服务器发送命令:

replconf ack  

主要有如下的作用:

  • 检测主从的连接状态
  • 辅助实现min-slaves
  • 检测命令丢失

哨兵模式

哨兵介绍

哨兵(Sentinel)是Redis高可用的解决方案,由一个或者多个sentinel集群监视一个或者多个服务器。
当主服务器下线时,sentinel可以将某一从服务器升级为主服务。

部署方案

在这里插入图片描述

配置过程

由于需要启动很多,所以直接使用容器的方式部署。

version: '3'  services:   redis-master:     image: redis:6.2     container_name: redis-master     command: redis-server --appendonly yes     ports:       - 6379:6379     volumes:       - ./data/redis-master:/data    redis-slave1:     image: redis:6.2     container_name: redis-slave1     command: redis-server --slaveof redis-master 6379     ports:       - 6380:6379     volumes:       - ./data/redis-slave1:/data     depends_on:       - redis-master    redis-slave2:     image: redis:6.2     container_name: redis-slave2     command: redis-server --slaveof redis-master 6379     ports:       - 6381:6379     volumes:       - ./data/redis-slave2:/data     depends_on:       - redis-master    sentinel1:     image: redis:6.2     container_name: sentinel1     command: >       sh -c "echo 'port 26379' > /data/sentinel.conf &&              echo 'sentinel monitor mymaster redis-master 6379 2' >> /data/sentinel.conf &&              echo 'sentinel down-after-milliseconds mymaster 5000' >> /data/sentinel.conf &&              echo 'sentinel failover-timeout mymaster 10000' >> /data/sentinel.conf &&              echo 'sentinel parallel-syncs mymaster 1' >> /data/sentinel.conf &&              redis-sentinel /data/sentinel.conf"     ports:       - 26379:26379     depends_on:       - redis-master       - redis-slave1       - redis-slave2    sentinel2:     image: redis:6.2     container_name: sentinel2     command: >       sh -c "echo 'port 26380' > /data/sentinel.conf &&              echo 'sentinel monitor mymaster redis-master 6379 2' >> /data/sentinel.conf &&              echo 'sentinel down-after-milliseconds mymaster 5000' >> /data/sentinel.conf &&              echo 'sentinel failover-timeout mymaster 10000' >> /data/sentinel.conf &&              echo 'sentinel parallel-syncs mymaster 1' >> /data/sentinel.conf &&              redis-sentinel /data/sentinel.conf"     ports:       - 26380:26380     depends_on:       - redis-master       - redis-slave1       - redis-slave2    sentinel3:     image: redis:6.2     container_name: sentinel3     command: >       sh -c "echo 'port 26381' > /data/sentinel.conf &&              echo 'sentinel monitor mymaster redis-master 6379 2' >> /data/sentinel.conf &&              echo 'sentinel down-after-milliseconds mymaster 5000' >> /data/sentinel.conf &&              echo 'sentinel failover-timeout mymaster 10000' >> /data/sentinel.conf &&              echo 'sentinel parallel-syncs mymaster 1' >> /data/sentinel.conf &&              redis-sentinel /data/sentinel.conf"     ports:       - 26381:26381     depends_on:       - redis-master       - redis-slave1       - redis-slave2 

相关内容

热门资讯

一分钟内幕!科乐吉林麻将系统发... 一分钟内幕!科乐吉林麻将系统发牌规律,福建大玩家确实真的是有挂,技巧教程(有挂ai代打);所有人都在...
一分钟揭秘!微扑克辅助软件(透... 一分钟揭秘!微扑克辅助软件(透视辅助)确实是有挂(2024已更新)(哔哩哔哩);1、用户打开应用后不...
五分钟发现!广东雀神麻雀怎么赢... 五分钟发现!广东雀神麻雀怎么赢,朋朋棋牌都是是真的有挂,高科技教程(有挂方法)1、广东雀神麻雀怎么赢...
每日必看!人皇大厅吗(透明挂)... 每日必看!人皇大厅吗(透明挂)好像存在有挂(2026已更新)(哔哩哔哩);人皇大厅吗辅助器中分为三种...
重大科普!新华棋牌有挂吗(透视... 重大科普!新华棋牌有挂吗(透视)一直是有挂(2021已更新)(哔哩哔哩)1、完成新华棋牌有挂吗的残局...
二分钟内幕!微信小程序途游辅助... 二分钟内幕!微信小程序途游辅助器,掌中乐游戏中心其实存在有挂,微扑克教程(有挂规律)二分钟内幕!微信...
科技揭秘!jj斗地主系统控牌吗... 科技揭秘!jj斗地主系统控牌吗(透视)本来真的是有挂(2025已更新)(哔哩哔哩)1、科技揭秘!jj...
1分钟普及!哈灵麻将攻略小,微... 1分钟普及!哈灵麻将攻略小,微信小程序十三张好像存在有挂,规律教程(有挂技巧)哈灵麻将攻略小是一种具...
9分钟教程!科乐麻将有挂吗,传... 9分钟教程!科乐麻将有挂吗,传送屋高防版辅助(总是存在有挂)1、完成传送屋高防版辅助透视辅助安装,帮...
每日必看教程!兴动游戏辅助器下... 每日必看教程!兴动游戏辅助器下载(辅助)真是真的有挂(2025已更新)(哔哩哔哩)1、打开软件启动之...