検索

ホームページ  >  に質問  >  本文

mongodb有没有后端执行的操作可以立马得到回馈的?

比如redis哈。 你提交一个bgrewriteaof。会立马得到一个回复。即程序与redis的连接结束。redis自己在默默的执行操作。

mongodb有木有类似的命令参数?比如我remove掉一批object。尼玛等了30多分钟……= =。难道就木有 一个 db.collection.remove({param},{background:true})?= =

大家讲道理大家讲道理2805日前652

全員に返信(3)返信します

  • 高洛峰

    高洛峰2017-04-21 11:20:58

    ここを参照: http://docs.mongodb.org/manual/reference/write-concern/

    MongoDB Default w=1。你可以传个 w=0 は、書き込み操作が完了するのを待ちたくないことを MongoDB に伝えます。

    返事
    0
  • PHPz

    PHPz2017-04-21 11:20:58

    これを「非同期リターン」といいます。一部の言語 (Java など) には mongodb 非同期ドライバーがあります。mongodb async + 使用する言語を参照してください。

    返事
    0
  • 黄舟

    黄舟2017-04-21 11:20:58

    現在、redis はインメモリ データベースを使用する傾向にありますが、redis は永続化戦略を構成でき、メモリ内のデータをハードディスクに永続化し、次回の再起動時に自動的に復元できます。 bgrewriteaof は、redis が AOF 永続化戦略を採用している場合に、管理者が AOF 再書き込みを手動でトリガーできるようにする、redis によって提供されるコマンドです。Redis 2.4 以降、AOF 再書き込みは Redis によって自動的にトリガーされます。このような Redis サーバーのメインスレッドは、操作コマンドを受け入れるたびにデータをメモリと AOF に書き込み、Redis がそのデータをハードディスクに自動的に fsync します。これにより、ユーザーの操作がブロックされることはありません。参照: Redis 永続性

    Mongodb はドキュメントベースのデータベースとして位置付けられ、分散アーキテクチャをネイティブにサポートします。ドキュメント データベースとしての永続性の保証は、操作が成功する前にすべてのデータがハード ディスクに書き込まれる必要があることです。分散アーキテクチャは、永続化操作にさらに複雑な問題をもたらします (複数のサーバー間のデータ同期の確保、分散書き込み戦略など)。

    要約すると、Mongodb が提供する特定の機能を期待しないでください。これは、この 2 つは焦点が異なるためです。Redis は高性能 I/O に重点を置いているのに対し、mongodb は大量のデータのストレージに重点を置いています。パフォーマンスを考慮しながらデータを作成します

    あなたの説明から判断すると、mongodbを要求する操作は厳しくブロックされています。 mongodb 操作をリクエストするときに、ニーズを組み合わせて WriteConcern をアタッチして、許容できる書き込み操作戦略を定義することをお勧めします。参照: WriteConcern

    返事
    0
  • キャンセル返事