区别:

缓存穿透是指缓存和数据库中都没有数据,而用户不断发起请求。由于我们缓存逻辑一般都是不命中时被动写的,并且出于容错考虑,如果从数据库查不到数据库就不写缓存直接返回,这将导致整个不存在的数据每次都要到数据库去查询,这样缓存就失去意义了。

而缓存击穿是指缓存中没有但数据库中有的数据(一般是缓存时间到期),这时由于并发用户特别多,同时读缓存没读到数据库,又同时去数据库去取数据,引起数据库压力瞬间增大,造成DB过大的压力。