问题描述
我正在浏览定义在:https://redis.io/commands/incr 和“模式:速率限制器 2”部分下的 Redis 速率限制器模式,它具有以下片段:-
FUNCTION LIMIT_API_CALL(ip)
current = LLEN(ip)
IF current > 10 THEN
ERROR "too many requests per second"
ELSE
IF EXISTS(ip) == FALSE
MULTI
RPUSH(ip,ip)
EXPIRE(ip,1)
EXEC
ELSE
RPUSHX(ip,ip)
END
PERFORM_API_CALL()
END
进一步说明:
实现更复杂,使用更高级的功能,但具有记住当前执行 API 调用的客户端的 IP 地址的优势,这取决于应用程序是否有用。
我无法通过为每个 ip 存储列表 ip 地址来获得它有什么优势?普通计数器而不是列表会给出相同的东西?我可以为每个 ip 设置一个计数器,它可以做同样的事情。该列表只是一遍又一遍地存储相同的 ip,这似乎有点矫枉过正。我错过了什么吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)