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

缓存的介绍

相关面试题 :

● 为什么要用缓存?

● 本地缓存应该怎么做?

● 为什么要有分布式缓存?/为什么不直接用本地缓存?

● 为什么要用多级缓存?

● 多级缓存适合哪些业务场景?

缓存思想

空间换时间(索引,集群,读写分离,CDN)

缓存分类

本地缓存

本地缓存的方案

  • JDk自带的concurrentHashMap
  • Guava cache、Spring cache
  • caffeine

优点

简单、快、低依赖

缺点

分布式缓存无法共享

本地缓存容量受设备影响

分布式缓存

使用分布式缓存之后,缓存服务可以部署在一台单独的服务器上

实现

redis和

多级缓存

本地缓存 + 分布式缓存

业务场景

缓存的数据不会经常修改

秒杀活动,访问量大

流程

多级缓存方案中,第一级缓存(L1)使用本地内存(比如 Caffeine)),第二级缓存(L2)使用分布式缓存(比如 Redis)。

多级缓存方案中,第一级缓存(L1)使用本地内存(比如 Caffeine)),第二级缓存(L2)使用分布式缓存(比如 Redis)。

多级缓存一致性怎么实现

Canal + 广播消息,这里简单介绍一下:

1 DB 修改数据:首先在数据库中进行数据修改。

2 通过监听 Canal 消息,触发缓存的更新:使用 Canal 监听数据库的变更操作,当检测到数据变化时,触发缓存更新。

3 同步 Redis 缓存:对于 Redis 缓存,因为集群中只共享一份数据,所以直接同步缓存即可。

4 同步本地缓存:由于本地缓存分布在不同的 JVM 实例中,需要借助广播消息队列(MQ)机制,将更新通知广播到各个业务实例,从而同步本地缓存。

相关文章:

  • 车联网下什么是V2X与MQTT在V2X中重要位置
  • Cursor AI编程指南
  • Java练习(20)
  • 定时拨测指定url连通性
  • 小米红米手机澎湃2.0解锁BL 绕澎湃社区验证 救砖以及9008授权
  • mysql之联合索引
  • 微信小程序登陆鉴权最佳实现
  • 【哇! C++】缺省参数、函数重载与引用
  • 【C++】策略模式
  • 迭代、递归、回溯和动态规划
  • span标签 鼠标移入提示框 el-tooltip element-ui
  • twisted实现MMORPG 游戏数据库操作封装设计与实现
  • python学opencv|读取图像(六十八)使用cv2.Canny()函数实现图像边缘检测
  • Linux内核 - 非仿生机器人之感知主控系统(协议栈)
  • 3D打印学习
  • 【DDD系列-2】风暴出的领域模型
  • 解决 MyBatis Plus 在 PostgreSQL 中 BigDecimal 精度丢失的问题
  • Android remount failed: Permission denied 失败解决方法
  • 基于单片机的智能安全插座(论文+源码)
  • DeepSeek计算机视觉(Computer Vision)基础与实践
  • 巴基斯坦副总理兼外长达尔将访华
  • 马上评|中药液涉嫌添加安眠药?药品安全儿戏不得
  • 上海位居全球40城科技传播能力第六名
  • 体坛联播|水晶宫队史首夺足总杯,CBA总决赛爆发赛后冲突
  • 习近平向第三十四届阿拉伯国家联盟首脑理事会会议致贺信
  • 著名文博专家吴远明因交通事故离世,享年75岁