我实现了redis限速技术。它根据请求中的用户id和url过滤所有请求。 Spring 的解决方案(使用
org.springframework.cloud.gateway.filter.ratelimit.RedisRateLimiter
当然,该key会被Redis自动删除。由于RedisRateLimiter使用的Lua脚本,为这些键设置过期时间。检查源代码了解详细信息。
注意:有一个更有效的速率限制解决方案,即您不需要为每个请求调用 Redis。查看此 PR 了解详细信息。