缓存穿透:redis和数据库都没有。
发生原因:有恶意攻击或DB确实没有符合查询条件的。
缓存击穿:redis没有,但是数据库可能有。
这里互斥锁是保证每次从数据库查询数据,都再从redis查找数据,最后拿到的都是最新的,这样redis里就不会有过期数据。
对查询为空的缓存对象设置过期时间 eg:在12点上秒杀,但用户11点开始搜,到12点后再搜应该能搜到了,如果不设置有效时间,那该用户就一直搜不到秒杀商品。
缓存穿透:redis和数据库都没有。
发生原因:有恶意攻击或DB确实没有符合查询条件的。
缓存击穿:redis没有,但是数据库可能有。
这里互斥锁是保证每次从数据库查询数据,都再从redis查找数据,最后拿到的都是最新的,这样redis里就不会有过期数据。
对查询为空的缓存对象设置过期时间 eg:在12点上秒杀,但用户11点开始搜,到12点后再搜应该能搜到了,如果不设置有效时间,那该用户就一直搜不到秒杀商品。