摘要: 基本原理 所有的服务从redis中插入数据 若插入成功 则表示拿到锁 则可以进行数据库操作 若插入失败 则未拿到锁 则不可以进行插入操作 可以使用redis SET key value [EX seconds] [PX milliseconds] [NX|XX] 命令 EX seconds – 设置 阅读全文
posted @ 2022-02-21 19:19 RainbowMagic 阅读(26) 评论(0) 推荐(0)
摘要: 产生缓存击穿的原因 发生缓存击穿的原因是在高并发场景下 大量请求访问一个已失效数据 频繁访问数据库 导致数据库宕机 解决方案 可以引入本地锁 因为在springboot 容器中的bean都是单例 所以只要锁住当前对象即可 在进行缓存查询时 若发现在缓存中数据不存在 去数据库中查询 在数据库查询时添加 阅读全文
posted @ 2022-02-21 17:25 RainbowMagic 阅读(91) 评论(0) 推荐(0)
摘要: 缓存雪崩 在某一时刻 大量缓存在同一时刻失效 导致大量请求打到数据库中 将数据库打摊 解决方案: 将缓存失效时间随机设置到1-5分钟内 这样就避免了在 一段时间内 缓存数据大量失效 缓存击穿 类似缓存雪崩 不同的是缓存穿透是由单个数据失效 高并发场景下 大量请求打到数据库中 导致数据库宕机 解决方案 阅读全文
posted @ 2022-02-21 10:36 RainbowMagic 阅读(31) 评论(0) 推荐(0)
摘要: 缓存的访问流程 redis中查询缓存数据 若不存在则进行数据库查询并将缓存数据存入redis中 若存在在直接进行放回 引入缓存 首先导入spring-data-redis的pom包 <dependency> <groupId>org.springframework.boot</groupId> <a 阅读全文
posted @ 2022-02-21 10:05 RainbowMagic 阅读(39) 评论(0) 推荐(0)