一、什么是redis缓存穿透
假如,有数百名黑客,疯狂的登录错误的账号。按照一般流程,我们首先会在redis缓存中查询有无该账号,如果没有,继续往数据库中查询该账号。那么,缓存机制就是去意义了。因为所有请求都绕过redis缓存,直接命中在数据库中,数据库就会宕机。
二、解决办法
当用户进行登录的时候,如果在redis和数据库中都没有找到账号,那么,暂时把该账号通过
redistemplate.opsForValue().set(username,"",300,TimeUnit.MINUTES);
存储起来,等下次以同样账号再次请求的时候,我们就能直接通过redis判断该账号不存在。