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

缓存的介绍

相关面试题 :

● 为什么要用缓存?

● 本地缓存应该怎么做?

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

● 为什么要用多级缓存?

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

缓存思想

空间换时间(索引,集群,读写分离,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.kler.cn/a/549686.html

相关文章:

  • STM32的DMA解释
  • hivemetastore 连接过多导致sql查询慢
  • Fiori APP配置中的Semantic object 小bug
  • 如何避免redis长期运行持久化AOF文件过大的问题:AOF重写
  • 深度学习:基于Qwen复现DeepSeek R1的推理能力
  • 基于mediapipe深度学习的手势数字识别系统python源码
  • 力扣 乘积最大子数组
  • 【动态路由】系统Web URL资源整合系列(后端技术实现)【apisix实现】
  • MySQL8.x版本的新的功能特性总结
  • 提升顾客转化率:融合2+1链动模式AI智能名片与S2B2C商城小程序的创新策略
  • 一文讲明白RAG 与 KAG 的区别:自然语言处理中的知识增强方法对比
  • 文件上传功能(四)——项目集成
  • Hive之分区表
  • 使用sublime_text中,TAB键无效怎么解决???
  • 【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)——4.2 LSTM的引入与解决长期依赖问题的方法】
  • Qt QOpenGLShaderProgram详解
  • Machine Learning:General Guide
  • 探索深度学习与人类智能交互的共生关系与发展路径
  • 【深度学习】计算机视觉(CV)-目标检测-DETR(DEtection TRansformer)—— 基于 Transformer 的端到端目标检测
  • 【pytorch】weight_norm和spectral_norm