缓存击穿、缓存雪崩、缓存穿透

发布时间 2023-07-01 10:56:50作者: 丶Ronnie

怎么防止缓存击穿:

在实际应用中,我们会在程序和数据库之间增加一个缓存层,一方面是为了提升数据的检索效率,提升程序的性能,另一方面是为了缓解数据库的一个并发压力,缓存击穿是因为客户端恶意发送一些大量不存在的key的请求,由于访问的key,对应的数据本身不存在,所以每一次必然都会穿透到数据库里面,导致缓存成为摆设。

对于此类场景,

第一种,可以在接口层增加校验,对确定没有的key,进行拦截;

第二种,可以将这些不存在的key,保存在缓存中,设置比较短的缓存时间;

第三种:也可以使用布隆过滤器,应用启动的时候把存在的数据缓存存到布隆过滤器里面,每一次请求过来的时候,先访问布隆过滤器,如果不存在则说明这个数据一定没有在数据库,就没必要再访问数据库;