缓存方案总概

文章目录

缓存概要

本地缓存和外部缓存

缓存策略

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

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

缓存常见的问题

1.缓存穿透

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

解决方法:

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

2.缓存击穿

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

解决方案:

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

3.缓存雪崩

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

解决方案:

  1. 将过期时间在业务层面做的均匀分散
  2. 热数据分散到不同的服务器上
相关推荐
少许极端8 小时前
Redis入门指南(六):从零到分布式缓存-数据持久化与事务
redis·分布式·缓存·事务·持久化
Leon-zy9 小时前
Redis7.4.5集群部署3主3从
redis·分布式·缓存·云原生
alonewolf_9910 小时前
深入理解Redis线程模型:单线程神话与原子性实战
数据库·redis·缓存·分布式架构
小北方城市网10 小时前
SpringBoot 集成 Redis 实战(缓存优化与分布式锁):打造高可用缓存体系与并发控制
java·spring boot·redis·python·缓存·rabbitmq·java-rabbitmq
小北方城市网10 小时前
SpringBoot 集成 Elasticsearch 实战(全文检索与聚合分析):打造高效海量数据检索系统
java·redis·分布式·python·缓存
難釋懷1 天前
Redis 通用命令
数据库·redis·缓存
2401_zq136y031 天前
Flutter for OpenHarmony:从零搭建今日资讯App(二十七)图片缓存的完整方案
flutter·缓存
2401_858286111 天前
从Redis 8.4.0源码看快速排序(1) 宏函数min和swapcode
c语言·数据库·redis·缓存·快速排序·宏函数
Codeking__1 天前
Redis——事务
数据库·redis·缓存
Codeking__1 天前
Redis——认识持久化、RDB、AOF
数据库·redis·缓存