我对Redis有点新意,但我想知道它是否可用于跟踪我正在进行的并发HTTP连接数。
这是高级计划:
INCR requests
// request begins
HTTP.get(...)
// request ends
DECR.requests
然后,在任何时候,只需致电GET requests
,查看当前有多少人正在打开。
这里的最终目标是限制我的http请求以保持低于某个任意数量,比如50个请求/秒。
这是正确的方法吗?有没有陷阱?
答案 0 :(得分:0)
至于陷阱,我唯一能看到的是服务器停机或失去与Redis mid-request的连接可能永远不会调用DECR
。
由于您不知道哪个服务器执行了哪个请求,因此您永远不能将计数重置为正确的值,而不会使系统停止并重置为0.
答案 1 :(得分:0)
我不清楚在这种情况下使用redis会获得什么。在我看来,在服务器中仅使用全局变量会更合适。如果您的服务器出现故障,您的计数器也会出现故障,因此您无需处理复杂的事情来处理断开连接,不一致等问题......