欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 文化 > redis缓存应用

redis缓存应用

2025/2/10 8:32:57 来源:https://blog.csdn.net/2401_86261141/article/details/145536760  浏览:    关键词:redis缓存应用

文章目录

    • 1.什么是缓存(Cache)
        • 重复数据请求
    • 2.缓存更新策略(三种)
      • 主动更新策略
    • 3.什么是缓存穿透
      • 概念
      • 解决
    • 4.什么是缓存雪崩
      • 概念:
      • 解决
    • 5.什么是缓存击穿问题
      • 概念
      • 解决
        • 1.互斥锁
        • 2.逻辑过期
        • 方案对比

1.什么是缓存(Cache)

缓存是一种用于临时存储数据的技术,数据交换的缓冲区,一般读写性能较高

作用:提高读写效率,降低响应时间

成本:数据一致性成本、代码维护成本、运维成本

重复数据请求
  • 当相同的数据被多次请求时,可以将结果缓存起来,避免重复计算或查询数据库。
  • 例如:Web 应用中,频繁访问的数据库查询结果可以缓存到内存中。

2.缓存更新策略(三种)

主动更新策略


线程安全问题(数据不一致)

选用方案二:先操作数据库在删除缓存,线程2是数据库操作,一般比redis慢,所以线程1速度快,能让线程2挤进去的概率极小

3.什么是缓存穿透

概念

用户请求的数据在缓存和数据库中都不存在,不断发起这样的请求会给数据库带来压力

解决

缓存null对象,

缺点:1.会带来额外的内存消耗,请求没有的数据都会在缓存添加null值,占用内存,在加一个超时剔除,解决占用大量内存的问题

2.短期的数据不一致,比如查询一条数据,缓存没有,数据库没有,写入缓存就是null,此时,插入了一条数据,但是缓存里面有就会查缓存的旧数据,解决添加缓存的存在时间TTL

布隆过滤

4.什么是缓存雪崩

概念:

就是统一时间段大量的缓存key同时失效或者redis服务宕机了,导致大量请求到达数据库,带来巨大压力

解决

给key的TTL添加随机值,不然缓存在同一个时间段内同时失效

5.什么是缓存击穿问题

概念

也叫热点key问题,就是一个高并发访问并且缓存重建业务较为复杂的key突然失效了,无数的请求访问会给数据库带来巨大的压力

解决

1.互斥锁

(没抢到锁的线程会一直等待,性能差)

2.逻辑过期

方案对比

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com