每次增加1的时候都要设置过期时间吗

来源:2-13 【Demo】限流组件封装(一)- Redis + Lua

花花花大少爷

2021-09-07 22:03:58

老师,为什么每次增加1的时候都要设置过期时间,不是只需要在第一次增加的时候设置吗,每次增加1都重新设置过期时间不是延长了key的过期时间吗

写回答

1回答

姚半仙

2021-09-10

是的,在限流阈值内刷新时间,但超过阈值的时候,就反回false了,直到过期之后再返回true继续放行。

但这个只是简化版的限流组,统计精度不足且有漏洞,比如每次0.999秒来个请求,如果不超过限流次数那么上一秒的计数会到下一秒,所以真正要做到复杂的精细力度控制的话,需要自己实现滑动窗口之类的算法

0

Java架构师-技术专家

千万级电商项目从0到100全过程,覆盖Java程序员不同成长阶段的核心问题与解决方案

2672 学习 · 5839 问题

查看课程