java中遇到缓存穿透的两种方案
小妮浅浅
2021-03-23 15:36:17735浏览 · 0收藏 · 0评论
1、说明
缓存穿透是指查询一定不存在的数据,因为当缓存被误操作时,会被动地写入数据,而且为了容错,如果在存储层中查不到数据,就不会写入缓存,这样就会导致该不存在的数据每次请求都被写入存储层,从而失去缓存的意义。
2、解决方案
(1)一种简单粗暴的方法是,如果查询返回的数据是空的(无论该数据是否存在或系统失败),我们仍然缓存该空结果。
(2)通常情况下,使用Bloomfilter将所有可能存在的数据散列到一个足够大的bitmap中,该bitmap会截取一定不存在的数据,从而避免对底层存储系统产生查询压力。
以上就是java中遇到缓存穿透的两种方案,希望对大家有所帮助。更多Java学习指路:Java基础
关注公众号,随时随地在线学习