实现每分钟请求次数限制

41次阅读
没有评论

共计 504 个字符,预计需要花费 2 分钟才能阅读完成。

python代码示例

import time
import redis

r = redis.Redis(host='localhost', port=6379, db=1)

print(r)
def is_rate_limited(user_id, limit=5, window=360):
key = f"rate_limit:{user_id}"
current_time = int(time.time())
window_start = current_time - window

# 移除过期的请求记录
r.zremrangebyscore(key, '-inf', window_start)

# 获取当前窗口内的请求次数
request_count = r.zcard(key)

if request_count >= limit:
return False

# 记录当前请求
r.zadd(key, {current_time: current_time})
r.expire(key, window)

return True


# 示例调用
user_id = "user123"
if is_rate_limited(user_id):
print("请求通过")
else:
print("请求被限制")

 

正文完
 
BlackBeans
版权声明:本站原创文章,由 BlackBeans 2025-01-09发表,共计504字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)