我正在寻找具有“获取或阻止”操作的数据存储。如果该值存在,则此操作将返回与键/查询关联的值,或者在创建该值之前阻塞。
它就像一个发布/订阅消息队列,但有一个内存来处理订阅者在发布者发布结果后连接的情况。
此操作允许不相关的进程相互会合,并且它似乎是一个非常有用的架构构建块 - 特别是在 Web 环境中 - 即进来的 Web 请求启动后端服务器进程来做一些工作并且 Web 客户端可以通过未来的 AJAX 调用获得结果。
这是我发现的一篇关于如何使用 mongodb 完成此类操作的博客文章:
http://blog.mongodb.org/post/29495793738/pub-sub-with-mongodb
今天还有哪些其他解决方案正在使用?我可以用 redis 或 rabbitmq 做同样的事情吗?我已经查看了两者的文档,但不清楚它到底是如何工作的。我应该用 0MQ 滚动我自己的服务器吗?有没有专门针对这个问题量身定制的东西?