Redis とは何ですか?
Redis は、ANSI C 言語で書かれたオープンソースのログタイプの Key-Value 非リレーショナル データベースで、ネットワークをサポートし、メモリベースで永続化でき、複数の言語で API を提供します。 redis はキーと値のストレージ システムです。 Redis は非リレーショナル データベースの一種で、キャッシュとしてよく使用されます。
#Memcached と同様に、string (文字列)、list (リンク リスト)、set (コレクション)、zset (ソートされたセット -- 順序付きセット) とハッシュ (ハッシュ タイプ)。これらのデータ型はすべて、プッシュ/ポップ、追加/削除、交差、結合、差分などの豊富な操作をサポートしており、これらの操作はすべてアトミックです。これに基づいて、redis はさまざまな並べ替え方法をサポートします。
memcached と同様に、効率を確保するために、データはメモリにキャッシュされます。違いは、redis が定期的に更新されたデータをディスクに書き込むか、追加のレコード ファイルに変更操作を書き込むこと、そしてこれに基づいてマスターとスレーブ (マスターとスレーブ) の同期が実現されることです。
Redis には次の利点があります:
1. 文字列 (文字列)、リスト (二重リンク リスト)、辞書 (ハッシュ) など、さまざまなデータ構造をサポートします。 table)、set (セット)、zset (ソートされたセット)、hyperloglog (カーディナリティ推定)
2. 永続化操作をサポートし、データ バックアップまたはデータ リカバリのために aof および rdb データをディスクに永続化できます。データの損失を防ぐ方法。
3. レプリケーションによるデータ レプリケーションのサポート。マスター スレーブ メカニズムにより、データをリアルタイムで同期的にレプリケートでき、マルチレベル レプリケーションと増分レプリケーションがサポートされます。マスター スレーブ メカニズムは重要な手段です。 Redis が HA を実行できるようにします。
シングルスレッドのリクエストでは、すべてのコマンドがシリアルに実行され、同時実行状況でのデータの整合性の問題を考慮する必要がありません。
4. メッセージのサブスクリプションと通知に使用できるパブリッシュ/サブスクライブ メッセージ サブスクリプション メカニズムをサポートします。
5. 単純なトランザクション要件をサポートしていますが、業界では使用シナリオがほとんどなく、成熟していません。
Redis の欠点:
1. Redis は 1 つのスレッドしか使用できず、そのパフォーマンスは CPU のパフォーマンスによって制限されるため、単一インスタンスの CPU が到達できる最高の値になります。 1 秒あたり 5 ~ 6wQPS (データ構造、データ サイズ、サーバー ハードウェアのパフォーマンスによって異なりますが、毎日の環境でのピーク QPS は約 1 ~ 2w)。
2. 単純なトランザクション要件をサポートしていますが、業界での使用シナリオが少なく、成熟していないため、長所と短所の両方があります。
3.Redis は文字列型でより多くのメモリを消費します。dict (ハッシュ テーブル) を使用してストレージを圧縮し、メモリ消費を削減できます。
4.Mc と Redis はどちらも Key-Value タイプであり、異なるデータ セット間の関係を確立するのには適しておらず、クエリ検索にも適していません。たとえば、redis のキー パターンの照合操作は、redis のパフォーマンスに悪影響を及ぼします。
MongoDB とは何ですか?
MongoDB は、分散ファイル ストレージに基づくデータベースです。まず、xml、json、bson 型のデータを格納できる文書データベースについて説明します。同時に、MongoDB は C 言語で書かれています。 WEB アプリケーションにスケーラブルで高性能なデータ ストレージ ソリューションを提供するように設計されています。リレーショナル データベースと非リレーショナル データベースの中間の製品であり、非リレーショナル データベースの中で最も機能が豊富で、リレーショナル データベースに最も似ています。
サポートされるデータ構造は非常に緩やかで、json に似た bson 形式であるため、より複雑なデータ型を格納できます。 Mongo の最大の特徴は、サポートされているクエリ言語が非常に強力であることです。その構文はオブジェクト指向のクエリ言語に似ています。リレーショナル データベースの単一テーブル クエリと同様のほとんどの機能を実装でき、インデックス作成もサポートしています。データの。
Mongodb は mysql とは異なります。mysql のすべての更新操作はハードディスクに直接書き込まれますが、mongo はそうではありません。インメモリ データベースとして、データ操作は最初にメモリに書き込まれ、その後永続化されます。ただし、MongoDB はファイルの断片化を防ぐために事前に割り当てられた領域を使用するため、MongoDB のデータ ファイルは非常に大きくなります。
MongoDB の特徴は、
(1) ドキュメント指向 (2) 高パフォーマンス (3) 高可用性 (4) 拡張が容易 (5) リッチクエリ言語
以上がredisとmongodbではどちらが優れていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。