缓存方案总概

文章目录

缓存概要

本地缓存和外部缓存

缓存策略

为了使用有限容量的内存,必然会有一定的缓存淘汰方法,去淘汰掉冷性缓存,提高内存使用率

  1. 先进先出
  2. 最近最少使用
  3. 按固定时间过期(最常使用)
    设置过期时间,可根据业务数据进行加权 类似3+5X的时间,X为业务参数,此淘汰策略适合读多写少的情况

缓存常见的问题

1.缓存穿透

大量的请求来请求同一个数据 ,但是缓存和数据库中都没有,就会造成数据库的巨大压力

解决方法:

  1. 添加一个null的key
  2. 使用布隆过滤器
  3. 完全以缓存为主,采用异步缓存加载

2.缓存击穿

大量的请求来请求同一个数据,缓存中没有,请求都跑到数据库层面,造成数据库压力大

解决方案:

  1. 加的互斥key锁,访问同一个key只有有一个请求进入数据库
  2. 完全以缓存为主,采用缓存异步加载机制

3.缓存雪崩

大量的请求查询不同的数据,但此时缓存失效,大量的请求来到了数据库

解决方案:

  1. 将过期时间在业务层面做的均匀分散
  2. 热数据分散到不同的服务器上
相关推荐
java1234_小锋11 小时前
Redis的热Key问题如何解决?
数据库·redis·缓存
鸽鸽程序猿11 小时前
【Redis】事务
数据库·redis·缓存
今晚务必早点睡13 小时前
Redis——快速入门第七课:Redis 为什么这么快?
数据库·redis·缓存
Kiyra18 小时前
Spring Boot Starter 自定义开发:封装中间件配置
spring boot·redis·后端·缓存·中间件·性能优化·rocketmq
微扬嘴角18 小时前
springcloud篇10-多级缓存
spring cloud·缓存
kobe_OKOK_19 小时前
Django缓存接口数据
python·缓存·django
爱学习的小道长20 小时前
Ubuntu Python 使用 Redis 缓存
python·ubuntu·缓存
橘子真甜~21 小时前
Reids命令原理与应用2 - Redis网络层与优化,pipeline,发布订阅与事务
数据库·redis·缓存·事务·发布订阅·lua脚本·acid特性
逆袭的菜鸟X1 天前
极简HTTP缓存类封装
缓存
@淡 定1 天前
Redis持久化机制
数据库·redis·缓存