0
点赞
收藏
分享

微信扫一扫

Redis缓存击穿


缓存处理流程

什么是缓存击穿

某一个数据缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据,又同时去数据库去取数据,引起数据库压力瞬间增大,严重情况下会直接挂掉。

解决方案:

  • 添加互斥锁:
    ReentrantLock公平锁
    根据key值加锁,这样线程之间会不影响,不会因为某一个线程获取了锁,其它线程就处于等待时间,也就是线程A从数据库取key1的数据并不妨碍线程B取key2的数据
  • 设置热点数据永不过期(物理上的不过期、“逻辑上”的不过期(缓存到期动态构建缓存))


举报

相关推荐

0 条评论