随笔分类 - 缓存
摘要:[调优]缓存处理逻辑优化 缓存问题缓存过滤代码实现缓存移除 缓存问题 优化解决三个问题: 缓存逻辑抽离业务逻辑,以缓存切面形式进行拦截和过滤缓存穿透、缓存击穿缓存与数据库的数据一致性 缓存过滤 ① 通过spel进行缓存key动态解析② 缓存穿透保护。 缓存无数据则第一时间设置empty,防止流量击穿
阅读全文
摘要:优化前 //返回对象 Object result = null; //分布式锁 String cacheLock = CacheUtil.genLockKey(cacheKey); if (lock.lock(cacheLock, 5000, TimeUnit.MILLISECONDS)) { tr
阅读全文
摘要:1、问题背景 业务方反馈数据更新存在缓存不一致问题,于是开始排查。 2、日志记录 09:39:56:281 [查询线程T-1]没有缓存,获取缓存锁 09:39:56:286 [查询线程T-1]查询到脏数据 09:39:56:287 [更新线程T-2]数据库事务已提交,缓存移除 09:39:56:28
阅读全文
摘要:分布式多级缓存设计方案 设计背景概念场景 技术调研一级缓存 · JVM缓存HashMap & ConcurrentHashMap & Caffeine本地缓存设计 二级缓存 · Redis 设计方案缓存架构设计缓存拦截流程缓存加载流程缓存更新流程 设计背景 概念 先简单解释下什么是分布式多级缓存,所
阅读全文
摘要:在应用开发过程中,必然缺少不了缓存的使用,合理的设计和使用缓存不但对系统性能会有指数级的提升,还可以起到保护数据库的作用。 但是使用缓存的过程中也会有一些实战中遇到的问题,就是我们常听到的缓存穿透、缓存雪崩、缓存击穿问题,下面分别从问题产生原因、问题解决方法两方面结合实战案例来分别论述下。 一、缓存
阅读全文