缓存方案总概

文章目录

缓存概要

本地缓存和外部缓存

缓存策略

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

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

缓存常见的问题

1.缓存穿透

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

解决方法:

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

2.缓存击穿

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

解决方案:

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

3.缓存雪崩

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

解决方案:

  1. 将过期时间在业务层面做的均匀分散
  2. 热数据分散到不同的服务器上
相关推荐
秦jh_11 分钟前
【Redis】通用命令、string类型
数据库·redis·缓存
李白的天不白13 分钟前
ERROR Failed to compile with 9 errors 以来报错文件配置问题 缓存顽固问题
前端·缓存
知我Deja_Vu13 天前
redisCommonHelper.generateCode(“GROUP“),Redis 生成码方法
数据库·redis·缓存
没有bug.的程序员13 天前
电商秒杀系统深度进阶:高并发流量建模、库存零超卖内核与 Redis+MQ 闭环
数据库·redis·缓存·高并发·电商秒杀·流量建模·库存零超卖
troublea13 天前
ThinkPHP3.x高效学习指南
mysql·nginx·缓存
troublea14 天前
ThinkPHP6快速入门指南
数据库·mysql·缓存
Emotional。14 天前
AI Agent 性能优化和成本控制
人工智能·深度学习·机器学习·缓存·性能优化
jnrjian14 天前
Oracle 共享池 库缓存下的 Library Cache Lock
数据库·缓存·oracle
Anastasiozzzz14 天前
阿亮随手记:MySQL移除查询缓存、子查询优化深分页、自增主键溢出、索引失效
数据库·mysql·缓存
難釋懷14 天前
Redis消息队列-基于Stream的消息队列-消费者组
数据库·redis·缓存