ホームページ > バックエンド開発 > PHPチュートリアル > RedisとMemcacheの違いの分析[転送]_PHPチュートリアル

RedisとMemcacheの違いの分析[転送]_PHPチュートリアル

WBOY
リリース: 2016-07-13 10:30:42
オリジナル
900 人が閲覧しました

1. Redis では、すべてのデータが常にメモリに保存されるわけではありません。これが Memcached と比較した最大の違いです。

2. Redis は単純な k/v 型データをサポートするだけでなく、リスト、セット、ハッシュなどのデータ構造のストレージも提供します。

3. Redis はデータ バックアップ、つまりマスター/スレーブ モードでのデータ バックアップをサポートしています。

4. Redis はデータの永続化をサポートしており、データをディスク上のメモリに保持し、再起動時に再度ロードして使用できます。

Redis は多くの面でデータベースの特徴を持っています。つまり、Memcached は単なる K/V キャッシュであるのに対し、Redis はデータベース システムです

Redis 作成者が Redis と memcache を比較しているところを見てみましょう

出典: 「Redis と比較すると、memcached は恐竜ですか? (Redis と比較すると、Memcached は本当に時代遅れですか?)」

Redis は値が小さいとコアあたりの速度が速くなりますが、memcached はクライアントの助けなしに 1 つの実行可能ファイルと TCP ポートで複数のコアを使用できます。また、memcached は値が大きいほど高速です。 Redis は最近、大きな値 (不安定なブランチ) に関して大幅に改善しましたが、それでもこのユースケースでは memcached の方が高速です。ここで重要なのは、どちらかがボトルネックになる可能性は低いということです。 1 秒あたりのクエリ数を配信できます。

どちらも十分な性能を持っているので、性能をあまり気にする必要はありません。 Redis は単一のコアのみを使用しますが、Memcached は複数のコアを使用できるため、Memcached が小さいデータを保存する場合、平均して各コアの Redis のパフォーマンスが高くなります。 100k を超えるデータの場合、Memcached のパフォーマンスは Redis のパフォーマンスよりも高くなります。Redis は最近ビッグ データの保存パフォーマンスに最適化されていますが、それでも Memcached よりわずかに劣ります。ここまで述べた上で、結論としては、どちらを使用しても、1 秒あたりに処理されるリクエストの数がボトルネックになることはありません。 (たとえば、ボトルネックはネットワークカードである可能性があります)

単純なキーと値のペアの場合、Redis ハッシュを使用する場合は、メモリ効率が高くなります。

メモリ使用効率について言えば、単純なキーと値のストレージを使用する場合、Memcached のメモリ使用率は高くなります。Redis がキーと値のストレージにハッシュ構造を使用する場合、圧縮が組み合わされているため、メモリ使用率は低くなります。レートは Memcached よりも高くなります。もちろん、これはアプリケーションのシナリオとデータの特性によって異なります。

Redis でのみ利用できる 2 つの機能である永続性とレプリケーションに注意する必要があります。たとえ目的がキャッシュを構築することであっても、アップグレードまたは再起動後もデータがまだ存在していることが役立ちます。

データの永続性とデータの同期の要件がある場合は、Memcached にはこれら 2 つの機能がないため、Redis を選択することをお勧めします。システムのアップグレードまたは再起動後にキャッシュされたデータが失われないことを願うだけでも、Redis を選択するのが賢明です。

Redis では、必要な操作の種類に注意する必要があります。キャッシュの使用例を考慮しただけでも、多くの場合、データを処理することなく、1 回の操作でより多くの操作を行うことができます。クライアント側 (大量の I/O が必要になる場合があります)。この操作は通常の GET および SET と同じくらい高速です。そのため、GET/SET だけが必要ではなく、より複雑な操作が必要な場合は、Redis が大いに役立ちます (タイムラインで考えてください)。キャッシュ)。

もちろん、最終的には具体的なアプリケーション要件について話し合う必要があります。 Memcached と比較して、Redis はより多くのデータ構造を持ち、より豊富なデータ操作をサポートします。通常、Memcached では、データをクライアントに取得して同様の変更を行ってから、それを元に戻す必要があります。これにより、ネットワーク IO の数とデータ量が大幅に増加します。 Redis では、これらの複雑な操作は通常、通常の GET/SET と同じくらい効率的です。したがって、より複雑な構造と操作をサポートするキャッシュが必要な場合は、Redis が良い選択となります。


1. Redis と Memcache はどちらもデータをメモリに保存し、どちらもインメモリ データベースです。ただし、me​​mcache は、写真やビデオなど、他のものをキャッシュするために使用することもできます。
2. Redis は単純な k/v 型データをサポートするだけでなく、リスト、セット、ハッシュなどのデータ構造のストレージも提供します。 3. 仮想メモリ -- Redis は、物理メモリが使い果たされたときに、長期間使用されていない一部の値をディスクに交換できます 4. 有効期限ポリシー -- memcache は設定時に指定されます (たとえば、set key1 0 0 8)。これは、有効期限が切れないことを意味します。 Redis は期限切れによって設定できます。たとえば、期限切れ名 10 5. 分散 - memcache クラスターをセットアップし、Magent を使用して 1 つのマスターと複数のスレーブを実行できます。大丈夫ですマスターとスレーブが 1 人ずつ 6. ストレージ データのセキュリティ - memcache がハングアップした後、データは定期的にディスクに保存されます (永続化)。 7. 災害復旧 - memcache がハングアップした後はデータを復元できません。Redis データが失われた後は、aof を使用して復元できます 8. Redis はデータ バックアップ、つまりマスター/スレーブ モードでのデータ バックアップをサポートします。 http://www.bkjia.com/PHPjc/764699.htmlwww.bkjia.com

本当http://www.bkjia.com/PHPjc/764699.html技術記事 1. Redis では、すべてのデータが常にメモリに保存されるわけではありません。これが Memcached との最大の違いです。 2. Redis は単純な k/v 型データをサポートするだけでなく...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート