美文网首页
(5)缓存击穿(2)

(5)缓存击穿(2)

作者: hedgehog1112 | 来源:发表于2020-11-06 10:24 被阅读0次

击穿:设置过期时间key,某个时刻批量过期,大亮请求直接落db上。和雪崩区别雪崩很多key

解决方案

一、用互斥锁(mutex key)

常用做法,用mutex。缓存失效时,不立即load db,先用缓存工具的某些带成功操作返回值的操作(如Redis的SETNX)set一个mutex key,操作返回成功,再load db设缓存;否则重试整个get缓存方法

二、"提前"使用互斥锁(mutex key):

value内部设置超时值timeout1, 比实际的memcache timeout2小。从cache读取到timeout1发现它已经过期时,马上延长timeout1并重新设置到cache。再从db加载数据并设置到cache

三、 "永远不过期"

包含两层意思:

    (1) 从redis上看,没设置过期时间,保证不出现热点key过期问题,“物理”不过期

    (2) 从功能上看,如不过期,就成静态,所以把过期时间存在key对应value里,发现过期,通异步线程构建缓存,“逻辑”不过期

从实战看,性能非常友好,不足就是构建缓可能访问老数据,一般可忍受

四、资源保护

用netflix的hystrix,做资源隔离保护主线程池,应用到缓存构建

四种解决方案:没有最佳只有最合适

https://blog.csdn.net/zeb_perfect/article/details/54135506

相关文章

  • (5)缓存击穿(2)

    击穿:设置过期时间key,某个时刻批量过期,大亮请求直接落db上。和雪崩区别是雪崩很多key 解决方案 一、用互斥...

  • 11:Redis问题 企业级解决方案

    1:缓存预热 2:缓存击穿 3:缓存穿透 4:缓存雪崩

  • Go singleflight

    缓存穿透、缓存击穿、缓存雪崩解决方案 缓存处理 缓存击穿 缓存击穿是指缓存中没有但数据库存在的对应key的值,由于...

  • 缓存解决方案-简单记录

    1、springcache:SpringBoot基础系列-SpringCache使用 - 简书 2、缓存击穿和缓存...

  • Redis缓存穿透、缓存雪崩和缓存击穿

    缓存穿透 缓存雪崩 缓存击穿

  • redis篇

    1、基本数据类型1、string类型2、hash类型3、list类型4、set类型5、zset类型2、缓存击穿、缓...

  • 你需要知道的缓存击穿/穿透/雪崩

    缓存击穿/穿透/雪崩 Intro 使用缓存需要了解几个缓存问题,缓存击穿、缓存穿透以及缓存雪崩,需要了解它们产生的...

  • 你需要知道的缓存击穿/穿透/雪崩

    缓存击穿/穿透/雪崩 Intro 使用缓存需要了解几个缓存问题,缓存击穿、缓存穿透以及缓存雪崩,需要了解它们产生的...

  • 缓存常见问题

    阿里一面:关于【缓存穿透、缓存击穿、缓存雪崩、热点数据失效】问题的解决方案 缓存穿透 缓存击穿 缓存雪崩

  • redis应用场景之缓存

    一、缓存一些知识 1.1、缓存击穿、缓存穿透、缓存雪崩是什么? 缓存击穿用户请求的某个key在DB或者缓存中存在,...

网友评论

      本文标题:(5)缓存击穿(2)

      本文链接:https://www.haomeiwen.com/subject/lpxavktx.html