memcachedをし、Redisの違いと選択

Aは、はじめのMemcached

Memcachedのは、無料のオープンソースの高性能、分散メモリオブジェクトキャッシュシステムです。

ライブジャーナルのMemcachedのはDanga InteractiveのブラッドFitzpatricは、ソフトウェアの開発を主導しています。今、はてな、Facebookの、Voxの、重要なファクターとなっているmixiの LiveJournalのWebアプリケーションのスケーラビリティを向上させるために、他の多くのサービスを。

memcachedのは、任意のデータ記憶タイル(文字列、オブジェクト)のために、メモリベースのキーと値のストアです。これらのデータは、データベース呼び出し、API呼び出し、またはページのレンダリング結果をすることができます。

Memcachedのは、シンプルで強力です。そのコンパクトなデザインは、開発作業とデータキャッシュの解決多くの問題を大量に削減、迅速な開発を容易にします。そのAPIは、最も人気のある開発言語と互換性があります。

基本的に、それは簡単なキーと値のストレージシステムです。

一般的な目的は、スケーラビリティを向上させ、動的なWebアプリケーションの速度を向上させるために、データベースアクセスの数を減らす、データベースクエリの結果をキャッシュすることです。

 

memcachedをし、Redisの違いと選択


二、Redisの入門

のRedisはBSDが契約を遵守し、完全に無料のオープンソースであり、それは高性能なキーと値のデータベースです。

- Redisのと他のキー値のキャッシング製品は、次の3つの特徴を有する:
1を、Redisのは、あなたが再利用できる場合に、メモリ内のデータがディスク、負荷へのリブートに保存することができ、データの永続性をサポートしています。
2、記憶リスト、セット、ZSET、ハッシュおよび他のデータ構造を提供しながら、Redisのは、単純なキー値のデータ型をサポートします。
3、Redisのバックアップデータ、すなわち、データバックアップマスタ・スレーブモードをサポートします。

Redisの利点
1、高パフォーマンス-高速として11万回/ sとRedisのは、書き込み速度は81000回/秒で、読むことができます。
2、豊富なデータ型は- Redisのは、バイナリの場合文字列、リスト、ハッシュ、セットと順序セット操作のデータ型をサポートしています。
3、アトミック- Redisのすべての操作が成功するか、完全に実行され、実行に失敗のどちらかということを意味し、アトミックです。これは、単一の原子操作です。動作の複数は、マルチラップによってトランザクション、すなわち原子性、およびEXEC命令をサポート。
4、機能豊富な- Redisのも、支持体には、通知、キーの有効期限とその特性上、パブリッシュ/サブスクライブ。

Redisのと他のキーと値のストアの違いは何ですか?
Redisのは、より複雑なデータ構造を有しており、他のデータベースの進化経路とは異なるそれらにアトミック操作を提供します。一方、Redisのデータ型は、追加の抽象化を必要とせずに、プログラマに対して透過的、基本的なデータ構造に基づいています。
Redisのメモリで実行されているが、そのようにデータがハードウェアメモリの量よりも大きくすることができないので、高速に読み出しおよび書き込みメモリは、異なるデータセットをトレードオフするときことを、ディスクに保存することができます。あなたが内部のRedis非常に複雑な問題の多くを行うことができますので、インメモリ・データベースのもう一つの利点は、同じ複雑なデータ構造に比べて、ディスク上の非常に簡単なメモリで動作します。彼らはランダムアクセスを必要としないので、一方、そのコンパクトディスクフォーマットの面で、追加の方法を生成します。


三、およびMemcachedのRedisの区別及び選択

のみRedisの単核、多核とMemcachedのは非常に比べて、使用することができるので、小さなデータを格納中のコアのそれぞれの平均値は、Memcachedのより高い性能をRedisの。大規模なデータにRedisの最近の最適化ストレージ性能は、しかしMemcachedのに比べ、またはわずかに小さいが100K以上のデータ、RedisのよりMemcachedの性能に。それを言って、結論はあなたが使用するものに関係なく、1秒あたりの要求数がボトルネックになっていないということです。

あなたは、メモリ使用量に焦点を当てる必要があります。このような単純なデータ記憶されたキー値のために、より高いメモリ使用量をMemcachedの。ハッシュ構造場合は、Redisのメモリ使用量が高くなります。もちろん、これらは、特定のアプリケーションシナリオに依存しています。

あなたはRedisのが唯一のこれらの二つの特性を持つ、注目データの永続性とマスタースレーブレプリケーションを集中する必要があります。あなたの目標は、アップグレードまたは再起動後のデータが失われない前にバッファを構築することであるならば、あなただけのRedisを選択することができます。

あなたが必要とする操作を心配する必要があります。Redisのはだけでもあなたは、多くの場合、クライアントにデータを読み込む必要なく、多くのことを行うことができ、単一の操作でメモリの使用を考慮し、複雑な操作の数をサポートしています(これは、IO操作の多くが必要になります)。あなただけ/ SETが、より多くの操作をGETする必要はありませんので、これらの複雑な操作と高速として実質的に純粋なGETとPOST操作は、Redisのは重要な役割を果たします。

あなたがキャッシュされたデータのみのキー値に、このようなシンプルな構造が必要な場合は、両者の間の選択は、私はまだそれに十分な安定性と信頼性、プロジェクト内でMemcachedの使用していますが、特定のアプリケーションシナリオに依存します。それは店にオペレーションの複雑な一連になる場合は、並べ替えなど、何の疑いのRedisが選択されていません。

第四には、別のRedisとMemcachedの、以下の要点に:

1、ストレージ:
Memcachedのデータが停電後ハングする、メモリ内にすべて存在し、データは、メモリサイズ超えることができない
ので、ハードディスクの一部に存在するRedisのを永続的なデータを確実にするために、データの永続性(著者注をサポートする:そこのスナップショットとログの2種類が、永続的な方法AOFあるときに実際の使用では、プロファイルのスナップショットパラメータに特に注意を払って、またはそうでなければおそらくサーバー頻繁に全負荷でありますダンプを行います)。

2、データ型がサポート:
データ担体上のMemcachedよりRedisのをはるかに。

別の基礎となるモデルを使用して3は、:
その後、システムコールを移動するためのいくつかの時間を無駄にし、一般的なシステム機能を要求しますので、RedisのVMの新しいバージョンでは、自分の直接のメカニズムを構築します。

4、異なる動作環境:
あなたはより良いシステム環境の最適化に注力するために使用することができますので、グループがあるものの、Redisのは現在だけで、このように他のシステムのためのサポートの必要性を排除し、LINUX公式ラインアップをサポートするためのMicrosoft後で彼は、パッチを書きました。しかし、トランクの上に置かない

V.まとめ

個人の合計アップ、持続的な需要やデータ構造とプロセスは、高度なアプリケーション要件を持っているが、選択のRedis、他の簡単なキー/値ストアは、Memcachedの選択します。

公開された139元の記事 ウォン称賛13 ビュー9278

おすすめ

転載: blog.csdn.net/qq_18671415/article/details/104540628