单个计数器的最快的nosql

时间:2011-11-23 23:51:21

标签: mongodb redis nosql

Mongodb将objectid作为默认主键 这提供了良好的可扩展性,但url很糟糕 我更喜欢网址中的简单ID。另外,在非常情况下放置int()非常可靠,应该接收任何内容的ID

所以这个想法如下: 在通过mongodb保存任何对象之前,调用另一个nosql来接收全局计数器 调用应该是原子并返回int

Redis的INC完全符合要求 问题是......是redis真正的最佳解决方案吗? 也许其他一些nosql会从乘法客户端更快地进行简单的单计数增量再到redis?

2 个答案:

答案 0 :(得分:1)

您可以将此递增数字键存储在单个文档集合中的MongoDB本身中,如{ "_id": 1, "currentKey": 99 }

使用findAndModify命令以原子方式递增并检索currentKey值。

最好将MongoDB ObjectId值保留为_id,并将此数字键存储在单独的唯一索引字段中以用于URL查找。这样一来,如果想要向下扩展,你就会做好准备。

答案 1 :(得分:0)

您可以为mongodb生成自己的ID,有这样的选项。但是你必须要处理独特性。为什么要为此使用另一个nosql?我认为没有意义,如果可以的话,你可以创建自己独特的密钥,并使用mongo。

Redis INC用于计数器,如果您查看该功能,mongodb也有$ inc运算符,您可以将其用作计数器。但这不是这个运营商的目的。这些主要用于分析等。