redis缓存击穿是什么
时间: 2023-08-24 20:52:21 浏览: 98
redis之缓存雪崩,穿透,击穿1
Redis缓存击穿是指在高并发场景下,当某个热点数据的缓存失效时,大量的并发请求直接访问数据库,导致数据库压力剧增,甚至可能引起数据库宕机。这种情况下,缓存无法发挥其提升性能的作用,反而成为了系统的瓶颈。
缓存击穿通常发生在以下情况下:
1. 热点数据失效:某个热点数据的缓存过期或被手动删除。
2. 并发访问:大量并发请求同时访问该热点数据。
3. 数据库查找:由于缓存失效,每个请求都需要直接访问数据库来获取数据。
解决缓存击穿问题的常见方案包括:
1. 互斥锁:在缓存失效时,使用互斥锁(如Redis的分布式锁)来保证只有一个请求能够访问数据库,其他请求等待结果并从缓存中获取数据。
2. 空值缓存:在缓存失效时,将空值(null)写入缓存,有效期较短。这样其他请求在一段时间内都会直接从缓存中获取空值,避免直接访问数据库。
3. 异步更新缓存:当缓存失效时,只有一个请求去更新缓存,其他请求直接返回旧的缓存数据,待更新完成后再刷新缓存。
以上是常见的解决方案,具体的选择需要根据实际场景和需求进行权衡。
阅读全文