相关面试题 :
● 为什么要用缓存?
● 本地缓存应该怎么做?
● 为什么要用多级缓存?
● 多级缓存适合哪些业务场景?
缓存思想
空间换时间(索引,集群,读写分离,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)机制,将更新通知广播到各个业务实例,从而同步本地缓存。