Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Redis 限流有哪几种做法?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

常见有固定窗口计数、滑动窗口、令牌桶和漏桶。固定窗口简单,但边界两侧可能连续通过两批请求。滑动和桶类策略能控制不同形式的突发。

讲清原理

计数和设过期要原子组合,否则客户端崩溃可能留下没有 TTL 的计数键。脚本还应约束键数、时间来源和每次操作的成本。

例子与易错点

登录重试可按账号和来源分开计数。允许短突发的接口可用令牌桶,给业务约定容量与补充速度。

在固定窗口的键上原子计数,首次写入时设置过期。

EVAL "local n=redis.call('INCR',KEYS[1]); if n==1 then redis.call('EXPIRE',KEYS[1],ARGV[1]); end; return n" 1 q59:window 60
EVAL "local n=redis.call('INCR',KEYS[1]); if n==1 then redis.call('EXPIRE',KEYS[1],ARGV[1]); end; return n" 1 q59:window 60

相关题 · 第 60 题、第 72 题

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。