検索

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

memcached - 使用mongodb搭配memcache

网站预计会有很大的查询量,相比之下写入数据库的操作要少很多。
我想的是把数据库内容分成两种,一种是用于索引的内容,内容包含各种所需信息对应的索引项,另一种是其他所要查询的具体数据内容。
先将具体内容存入memcache,查询时通过从数据库中得到的索引值再从memcache中取得对应数据;
写入数据时则直接写到mongodb中;
不知道这种做法有什么不妥,来这寻求下建议~~

PHPzPHPz2800日前863

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

  • 天蓬老师

    天蓬老师2017-04-24 16:01:35

    これは、使用する技術的ソリューションに基づいて、明確に考慮する必要があるいくつかの点があります。

      mongodb を選択したため、クエリ シナリオでは 1 つのキーを使用してドキュメント全体のデータを取得する必要があります。この種のクエリは mongodb が最も得意とするものであり、理論的にはこれ以上の最適化は必要ありません。
    1. 上記の状況に加えて、目的の結果を得るために複数回クエリを実行する必要がある場合は、キャッシュの使用を検討できます。Memcached よりも Redis を使用する方が柔軟だと思います。より具体的な手順:
    2. (1) 各クエリについて、まずキャッシュに移動して値がすでに存在するかどうかを確認します
      (2) そうでない場合は、特定のルールに従ってクエリ条件をキーとして使用し、クエリ結果を値として使用し、それらをキャッシュに保存して、このクエリの結果を返します。
      (3) はいの場合は、直接リターンします (ビジネスニーズに応じて、有効期間や新規書き込みなどのキャッシュ無効化制御も行う必要があります)
    3. 返事
      0
  • 我想大声告诉你

    我想大声告诉你2017-04-24 16:01:35

    「まず特定のコンテンツを memcache に保存し、クエリ中にデータベースから取得したインデックス値を介して memcache から対応するデータを取得します。」 この文がよくわかりません。ダウンタイムデータは消えません。

    返事
    0
  • 高洛峰

    高洛峰2017-04-24 16:01:35

    Mongodb はハイブリッド データベースです。Mongodb は書き込みのボトルネックではないので、読み取りのビジネスは重要な役割を果たします。 redis のような純粋なメモリ内データベースなら、手間をかけずに mongo に直接ビジネスを保存したほうが良いと思いませんか?

    返事
    0
  • キャンセル返事