python 数据库订阅_发布/订阅数据库和客户端编程数据库有什么区别?

我在ops日志中使用了Redis pub-sub和Mongodb可裁剪游标(这是一个capped集合,请参见http://denormalised.com/home/mongodb-pub-sub-using-the-replication-oplog.html和http://blog.mongodb.org/post/29495793738/pubsub-with-mongodb)来创建我自己的游标。主要区别在于您是否希望使用Mongo为pub-sub构建自己的逻辑。表面上看,pub-sub似乎很简单,但与任何东西一样,它有很多边缘案例,你必须编程。Redis的pub-sub已经为您完成了大部分的管道工作,因此您可以担心高级别的编码问题,并将低级别的内容留给已经解决问题的系统。在

Mongo对Redis的最大胜利是,你可以更好地控制你如何建立你的酒吧酒吧酒吧,所以如果你有特殊的需要,这可能是一个更好的选择。例如,使用Redis(开箱即用)时,如果客户端断开连接,然后在10分钟后重新连接,那么它将在这几分钟内丢失消息,并且无法恢复这些消息。使用Mongo,客户端可以返回并获取这些消息(需要注意的是,它必须从头到尾读取整个capped集合)-记住,您必须跟踪传递到每个客户端的最后一条消息,等等。Redis有一些变通方法,以便它能够实现这一点-请参见Redis Pub/Sub with Reliability作为一个例子。在

如果您需要速度和支持非常多的客户机和大量的订阅渠道,那么Redis是一个不错的选择。在我提到的实现中,Redis是迄今为止速度最快的,能够处理最多数量的客户机。当然,这可能反映了我们的Pub-Sub实现中存在的问题,而不是mongo总体性能的反映。不过,我们确实遇到了Mongo中全局写锁的问题,这个问题在最新版本(2.2?)中得到了缓解。在

总而言之,如果你需要一些专门的东西,Mongo可能是你的正确选择。但是,如果你想要一个直接的消息传递,在一个大的负载,我不会尝试重新发明轮子和将与Redis。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值