所有分类
  • 所有分类
  • 未分类

Redis-缓存击穿-含义/原因/解决方案

简介

本文介绍Redis的缓存击穿,包括:含义、原因、解决方案。

含义

缓存击穿是指一个Key非常热点,在不停的扛着大并发,大并发集中对这一个点进行访问,当这个Key在失效的瞬间,持续的大并发就穿破缓存,直接请求数据库,就像在一个完好无损的桶上凿开了一个洞。

解决方案

1.设置热点数据永远不过期

2.互斥锁

用互斥锁来保证只有一个线程读取数据库并写入缓存,其他线程必须从缓存中读取。

在第一个查询数据的请求上使用一个互斥锁来锁住它,其他的线程拿不到锁就等着。第一个线程查询到了数据后放到缓存然后释放互斥锁,后面的线程获得锁之后,就可以从缓存中获取数据。 ​

2

评论4

请先

  1. 其他线程等的话性能是不是比较低
    2974 2024-05-28 1
    • 只是第一次没值时等,性能不会慢。
      自学精灵 2024-05-29 1
  2. 此处我看到一个解决方法是设置热点数据的过期时间,每被搜索一次就增加一定的存活时间。
    罖亽 2024-05-10 1
    • 热点数据被搜索的频率极高,增加存活时间就涉及到写操作,会占用很多资源。
      自学精灵 2024-05-10 2
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录