发表于: 2018-05-20 22:18:48
1 1389
一、今天完成的事情
TPS:Transaction Per Second, 每秒事务数, 是衡量系统性能的一个非常重要的指标
断断续续把这些都压测了一次,然后了解了缓存穿透
这个时候如果我们查询的某一个数据在缓存中一直不存在,就会造成每一次请求都查询DB,这样缓存就失去了意义,在流量大时,可能DB就挂掉了。
要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。
有一个比较巧妙的作法是,可以将这个不存在的key预先设定一个值。
比如,"key" , “&&”。
在返回这个&&值的时候,我们的应用就可以认为这是不存在的key,那我们的应用就可以决定是否继续等待继续访问,还是放弃掉这次操作。如果继续等待访问,过一个时间轮询点后,再次请求这个key,如果取到的值不再是&&,则可以认为这时候key有值了,从而避免了透传到数据库,从而把大量的类似请求挡在了缓存之中。
缓存穿透:查询一个必然不存在的数据。比如文章表,查询一个不存在的id,每次都会访问DB,如果有人恶意破坏,很可能直接对DB造成影响。
错误报告,页面不可用
然后是解决缓存穿透问题,我是直接写到了控制器里面进行的判断
但是这样写太麻烦了,每一个方法里面都要进行控制,重复率太高,后来经师兄点拨,写到service里面会更方便,然后就改到service里面了
redis也一样,代码都是差不多的
二、明天计划的事情
梳理一下任务六,然后开始任务七
三、遇到的问题
在逻辑判断的时候,考虑的东西太少,存在太多明显的漏洞。。经验太少了啊,,多写代码多实践应该会变的好一点
四、收获
进度:
任务开始时间:2018年5月9日
预计demo时间:2018年5月12日
是否延期:
延期理由:
禅道地址:http://taskNaNteng.com/zentao/my-task.html
评论