0


我对使用 MongoDB 作为缓存服务器很感兴趣。我对 Mongo 比较陌生,所以请多多包涵……
我应该执行的任务之一如下:
从数据库中检索记录并更新 2 个 MongoDB 服务器。此任务仅写入 Mongo 服务器,不执行“读取”操作。该任务应该每 250 毫秒运行一次,并且要更新的文档数量在 0 - 180 条记录之间(相对较小的记录 - 每条记录都是一个文档)。

我想知道如何使用代码中的一个更新来执行此任务?(我不想遍历服务器并为每个服务器执行更新)

要提一点: mongo 服务器中的数据应该在每台机器上本地读取,以便获得尽可能小的延迟。

我应该创建一个副本集吗?如果是这样,副本集是否会在给定 250 毫秒的频率下反映每个服务器中的最新数据?

或者我应该直接连接到它们mongodb://server1,server2/?connect=direct然后在代码中执行一个更新,该更新将被转换为 2 个更新 - 每个服务器一个?

4

1 回答 1

0

内线回复。。

我想知道如何使用代码中的一个更新来执行此任务?(我不想遍历服务器并为每个服务器执行更新)

您可以进行批量插入或多次更新。但是在 mongod 服务器端,它们会依次应用。

我应该创建一个副本集吗?如果是这样,副本集是否会在给定 250 毫秒的频率下反映每个服务器中的最新数据?

您不能确定所有内容都在 250 毫秒内复制到辅助节点。但是,默认情况下,所有读取都转到 Primary (replica-set),因此您可以获得最新数据。

或者我应该像 mongodb://server1,server2/?connect=direct 一样直接连接到它们,然后在代码中执行一个更新,该更新将被转换为 2 个更新 - 每个服务器一个?

你必须像这样连接只有 'mongodb://server1,server2?..options'。更新只到主节点,这个更新是从主节点拉取的。

于 2013-05-14T15:04:34.963 回答