Redis-Rate-Limit-In-Prectice
昨晚十一点多我在公司楼下吹风,手机叮一下,小李又把活动接口打到 5xx 了…我抬头一看月亮,哎算了,干脆把“基于用户 IP 的接口限流”这一整套,从最容易落地的固定窗口,到更稳的滑动窗口,再到一些现场经验,一口气整齐活儿发你们。Spring Boot + Redis,纯 Java 代码,能直接抄(不是抄作业那种…你懂的)上去跑。
为什么要在服务里做 IP 限流
你要是单机,内存里计数就够了;但线上一上多实例、再挂个 Nginx、再来一点点突发流量,光靠应用内存就扛不住。Redis 当公共计数器最顺手:自增、过期都现成,集群下也通用。IP 这个维度也好解释——够粗能挡住“一个客户端太猛”的情况,又不至于误杀全体。