当前位置: 首页 > 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)机制,将更新通知广播到各个业务实例,从而同步本地缓存。

http://www.dtcms.com/a/16716.html

相关文章:

  • 车联网下什么是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)基础与实践
  • Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档
  • js考核第三题
  • 嵌入式经常用到串口,如何判断串口数据接收完成?
  • IIC总线,也称为I²C或Inter-Integrated Circuit协议
  • bootplus管理系统 file/download 任意文件下载漏洞
  • Python与R机器学习(1)支持向量机
  • AI技术未来趋势
  • 人工智能泡沫效应
  • mysql WITH的多种用法与示例
  • Day2:强化学习之TD learning