1 滑动窗口限流概述
滑动窗口是一种流量控制策略,用于控制在一定时间内允许执行的操作数量,在窗口内允许的操作数量是固定的,窗口会随着时间的推移不断滑动。
2 实现
-
确定窗口的大小,例如60s
-
用当前时间-60s,计算出窗口的开始时间
-
用ZREMRANGEBYSCORE删除窗口开始时间之前的所有数据
-
用ZCARD计算出总请求数
-
如果总请求数<limit,就把当前请求加到zset中(zadd login_limit currentTime uuid),否则不处理请求。