缓存击穿:
给某一个key设置了过期时间,当key过期的时候,恰好这时间点对这个key有大量的并发请求过来,这些并发的请求可能会瞬间把DB压垮。(简单来说,就是去拿数据缓存的时间太长,导致一堆请求去访问数据库了)
方法一:
优点:强一致性。
缺点:性能低,在第一个互斥锁释放前,所有的线程都在进行等待。
方法二:
优点:高可用性、性能优于方法一。
缺点:不能保证数据的强一致性。
总结:
其实图的流程非常的明确,唯一可能要理解的就是,两个方法虽然都加了互斥锁,但是方法二(逻辑过期)并不影响线程获取需要的数据。互斥锁锁的是对缓存中的数据进行更新的步骤。而方法一(互斥锁)则锁的是获取数据的步骤。