我对Redis有点陌生,但我想看看它是否可以用来跟踪我正在建立的并发HTTP连接的数量。
以下是高级计划:
INCR requests
// request begins
HTTP.get(...)
// request ends
DECR.requests然后,在任何时候,只要调用GET requests来查看当前有多少是打开的。
这里的最终目标是将我的http请求限制在某个任意数量以下,比如50个请求/秒。
这是正确的做法吗?有什么陷阱吗?
发布于 2013-02-05 23:42:50
至于陷阱,我能看到的唯一一个是,服务器在请求过程中宕机或失去与Redis的连接,可能永远不会调用DECR。
因为您不知道哪个服务器执行哪个请求,所以您永远不能将计数重置为正确的值,而不会使系统停止并重置为0。
发布于 2013-02-13 10:28:42
我不清楚在这种情况下使用redis会得到什么。在我看来,在您的服务器中只使用全局变量会更合适。如果你的服务器宕机了,你的计数器也会宕机,这样你就不必把复杂的事情放在适当的位置来处理断开连接、不一致等问题。
https://stackoverflow.com/questions/14711172
复制相似问题