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

Redis分布式缓存

Redis常被用来作为缓存,分布式缓存即为集群模式的redis。
在这里插入图片描述

一、持久化

1.1 RDB

在这里插入图片描述
Redis停机(主动停机)一次就会执行一次RDB。
在这里插入图片描述
可以看到redis的执行日志生成了rdb文件:
在这里插入图片描述
rdb文件保存在当前运行目录:
在这里插入图片描述
再次启动redis数据会自动恢复:
在这里插入图片描述
注意:
上述的rdb机制是主动停机时执行的,若是宕机不会执行。为例定时实现rdb存储,可以修改redis的配置文件。
在这里插入图片描述
上图的设置是若900或(或300秒或60秒)内由1个(或10个或10000个)key被修改,则执行rdb存储。
在这里插入图片描述
补充:RDB的fork原理
在这里插入图片描述
RDB的持久化是存在风险的,因为两次持久化之间的时间间隔较长。

1.2 AOF持久化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、redis主从

2.1 搭建主从架构

在这里插入图片描述
设置从节点的主节点:
在这里插入图片描述
注意:主节点执行写操作,从节点执行读操作,实现读写分离。
查询主机状态(下图为主节点状态,连接了两个从节点)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 数据同步原理

在这里插入图片描述
master判断slave是否是第一次来同步数据的方法:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:repl_backlog是一个固定长度的数组,且存满了就从初始位置开始存储,即可看成环形存储。
在这里插入图片描述
在这里插入图片描述

2.3 哨兵

2.3.1 哨兵的作用和原理

哨兵本身也是一个集群。
在这里插入图片描述
在这里插入图片描述
从slave节点中选出一个作为新的master节点的原则:
在这里插入图片描述
在这里插入图片描述

2.3.2 搭建哨兵集群

2.3.3 RedisTemplate连接哨兵

在这里插入图片描述
在这里插入图片描述

2.4 Redis分片集群

Redis主从集群可以应对高并发的问题。但是Redis主从之间也会做同步,为了提高主从同步时的性能,单节点的redis它的内存设置不要太高,如果内存设置过高则在rdb持久化或是全量同步时会导致大量的IO,性能会下降。
若单节点redis的内存上限降低了,比如只能存10G,20G,则不能适用于存储海量数据;此外,主从集群不适用于写并发很高的场景。这些问题用Redis分片集群来解决。

2.4.1 分片集群结构

在这里插入图片描述

2.4.2 散列插槽

插槽是在搭建主从集群时配置的。
在这里插入图片描述

2.4.3 集群伸缩

集群伸缩即动态地增加或删除节点。
在这里插入图片描述
在这里插入图片描述

2.4.4 故障转移

在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/19748.html

相关文章:

  • RabbitMQ消息堆积问题排查:concurrentConsumers 配置的坑与解决方案
  • js设计模式-职责链模式
  • More Effective C++ 条款24:理解虚拟函数、多继承、虚继承和RTTI的成本
  • VMWare ubuntu24.04安装(安装ubuntu安装)
  • 复杂PDF文档如何高精度解析
  • css3元素倒影效果属性:box-reflect
  • IsaacLab训练机器人
  • uni-app 实现做练习题(每一题从后端接口请求切换动画记录错题)
  • 国内免费低代码软件精选:四款工具助你快速开启数字化转型之路
  • 力扣72:编辑距离
  • windows docker(二) 启动存在的容器
  • 5招教你看透PHP开发框架的生态系统够不够“牛”?
  • 推荐一个论文阅读工具ivySCI
  • latex怎么写脚注:标共一声明,标通讯作者
  • 使用 Avidemux 去除视频的重复帧
  • 从实操到原理:一文搞懂 Docker、Tomcat 与 k8s 的关系(附踩坑指南 + 段子解疑)
  • 血缘元数据采集开放标准:OpenLineage Guides 在 Spark 中使用 OpenLineage
  • SpringBoot3中使用Caffeine缓存组件
  • 模版进阶及分离编译问题
  • ansible判断
  • 科学研究系统性思维的方法体系:数据分析模板
  • C语言:归并排序和计数排序
  • OCR识别在媒资管理系统的应用场景剖析与选择
  • 基于ZooKeeper实现分布式锁(Spring Boot接入)及与Kafka实现的对比分析
  • Pod自动重启问题排查:JDK 17 EA版本G1GC Bug导致的应用崩溃
  • Element Plus 表格表单校验功能详解
  • 【Web前端】JS+DOM来实现乌龟追兔子小游戏
  • 轻型载货汽车变速器设计cad+设计说明书
  • 【序列晋升】25 Spring Cloud Open Service Broker 如何为云原生「服务市集」架桥铺路?
  • 分布式光纤传感选型 3 问:你的场景该选 DTS、DAS 还是 BOTDA?