缓存方案总概

文章目录

缓存概要

本地缓存和外部缓存

缓存策略

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

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

缓存常见的问题

1.缓存穿透

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

解决方法:

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

2.缓存击穿

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

解决方案:

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

3.缓存雪崩

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

解决方案:

  1. 将过期时间在业务层面做的均匀分散
  2. 热数据分散到不同的服务器上
相关推荐
全栈弄潮儿²⁰²⁴4 天前
AI Agent 开发实战(30):限流、缓存与成本控制
人工智能·gpt·缓存·agent·限流·agi·成本控制
Together_CZ5 天前
DeepSeek-V4.1-Flash:Pushing the Limits of KV Cache Compression——推动 KV 缓存压缩的极限
缓存·llm·compression·kv cache·deepseek·v4.1-flash·推动 kv 缓存压缩的极限
Pioneer000015 天前
我用 Redis + 网关做多模型 API 路由:缓存命中率 95%+ 的工程实践
人工智能·redis·后端·缓存·性能优化·架构
hweiyu006 天前
Redis命令:MSETNX
redis·缓存
wdfk_prog6 天前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
是Dream呀6 天前
Harness 工程:让 Agent 真正把任务做完
人工智能·分布式·缓存·agent
努力努力再努力wz6 天前
【Redis进阶系列】:从主从复制到 Sentinel,一文建立故障检测、Leader 选举与 Failover 的完整心智模型
数据库·redis·缓存
wdfk_prog7 天前
ROS教程10:从 gtest 到 rostest——Unit Test、Node 集成测试、rosbag 与 rqt 验证闭环
运维·缓存·docker·容器·ros
程序猿乐锅7 天前
【黑马点评 | 第四篇】Redis缓存雪崩
java·数据库·spring boot·redis·缓存
HanhahnaH8 天前
Redis单线程和Tair多线程架构设计对比
分布式·缓存