缓存-缓存穿透

缓存穿透是指查询一个不存在的数据,由于缓存未命中时需要从数据库查询,同时查不到数据时也不会写入缓存,这就会导致每次请求这个不存在的数据时都要到数据库去查询,在流量大时,如果有人利用这个漏洞频繁访问我们的应用,可能会导致数据库的崩溃。

解决方案如下:

1、采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的 bitmap 中,一个不存在的数据会被这个 bitmap 拦截掉,从而避免了对底层数据库的查询压力。
2、如果从数据库中查询不到相关数据(即使查询出错),仍然把空结果进行缓存,同时把过期时间设置得短一些,最好不超过五分钟。

管理员

转载请注明出处!如果本博文或者本站对您(网站)的内容/素材构成侵权,请第一时间与本博主联系!

Press ESC to close