现在我们数据每次都是从数据库读取,这样当网站访问量达到高峰时段,对数据库压力很大,并且影响执行效率。我们需要将这部分广告数据缓存起来。
查询的时候走缓存,增删改的时候同步更新缓存
查询的时候:先查redis,根据key去查
1.如果redis有,直接返回结果集
2.如果redis没有,这时去数据库查询,返回结果集,并且同步地把缓存数据放到redis中
3.如果redis没有,数据库也没有,把key-null存到redis中
问题1:不应该同步地把数据保存到缓存中,异步把数据放到缓存中,使用mq发消息
问题2:查询的key永远没有value,每次的请求都会打到数据库,因为redis中没有缓存结果数据,会造成缓存的穿透,缓存value为空的数据
问题3:如果恶意访问,故意制造一些数据库没有的数据进行攻击,如果说访问持续缓慢,需要降低被恶意程序盯上的几率,缓存的降级,不管什么请求,短时间,高并发,全部返回null,很可能是一个爬虫程序
问题4:短信验证码,报警,请了武汉本地安全团队进行一些反制措施,最终找到这个人,短信轰炸机,调用别的公司的短信接口
在发短信之前,可以使用随机验证码,请滑动图块