缓存中的一个Key(比如一个促销商品),在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回 设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。
解决方案:对缓存查询加锁,如果
KEY
不存在,就加锁,然后查
DB
入缓存,然后解锁;其
他进程如果发现有锁就等待,然后等解锁后返回数据或者进入
DB
查询常用工具。
缓存中的一个Key(比如一个促销商品),在某个时间点过期的时候,恰好在这个时间点对这个Key有大量的并发请求过来,这些请求发现缓存过期一般都会从后端DB加载数据并回 设到缓存,这个时候大并发的请求可能会瞬间把后端DB压垮。