缓存穿透
查询一个一定不存在的数据。 查不到则不写入缓存。那么就会导致每次都需要去数据库查询一个不存在的数据了,就是查询的缓存都不在了 都去访问数据库了。 如果有人恶意并发的话 那么瞬间就GG了
if(redis中是否存在key){
拿redis
} else {
查询数据库 查到了就放到redis去 但是问题就是查不到就永远 都是查数据库
}
解决方法
if(redis中是否存在key){
if(get(key)!=''){
返回redis数据
}
} else {
查询数据库 查到了就放到redis去 查不到也写到redis去 key=''
}