Redisとmemcachedを比較

    「Redis」と「memcached」の概要

    「Redis」と「Memcached」は、どちらもインメモリデータストレージシステムです。

    「Memcached」は高性能分散メモリキャッシュサービスで、「Redis」はKey-Valueストアとしての機能を提供します。

    ■「Redis」とは

    Redisは、インメモリベースのキーバリューモデル型NoSQLデータベースです。

    Redisはメモリ上で動作するキーバリュー型データベースであり、コンピュータのメインメモリ上にキーバリューストアを構築し、外部のプログラムに対してデータ保存/読み出しなどの機能を提供します。

    メモリ内データ構造ストアとして非常に高速なアクセスが可能で、データ永続化機能も備えています。

    ■「memcached」とは

    memcachedは、高性能分散メモリキャッシュサーバです。メモリ上で動作するキーバリュー型揮発性キャッシュとして動作します。

    データベースへの問い合わせ結果(データ/オブジェクト)を一時的にキャッシュし、次に同じデータが参照された時にメモリから即座に返せます。

    既存システムに導入することで、データベースへのアクセス回数を減らし、動的Webアプリケーションの高速化およびスケーラビリティ向上を図れます。

    データ操作機能比較

    ■Redis

    Redisは、サーバエンドのデータ操作をサポートし、Memcachedよりも多くのデータ構造を所有し、より豊富なデータ操作をサポートします。

    そのため、複雑な構造や操作をサポートするためにキャッシュが必要な場合はRedisが適しています。

    ■memcached

    Memcachedでは、通常、変更操作のためにデータをクライアント側にコピーしてからデータを元に戻す必要があります。

    その結果、ネットワークIO数とデータサイズが大幅に増加します。

    ユースケース比較

    ■Redis

    Redisはシングルコアのみを使用するため、コアに関して測定すると、小さいデータストレージではMemcachedよりも高いパフォーマンスを出せます。

    ビッグデータ処理に関しては、いくつかの最適化が行われていますが、Memcachedほどのパフォーマンスには及びません。

    ■memcached

    Memcachedは複数のコアを利用できるため、大きなデータセットを扱う場合は、Redisよりも優れたパフォーマンスを発揮できます。

     

    参考元サイト
    medium.com →Redis vs. Memcached: In-Memory Data Storage Systems

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。

    「Redis」基本情報

    ■概要

    Redis(レディス)とは、インメモリベースのキーバリューモデル型NoSQLデータベースです。メモリ内データ構造ストアとして非常に高速なアクセスが可能で、データ永続化機能も備えています。

    ■基本説明

    Redisは、メモリ上で動作するキーバリュー型データベースです。コンピュータのメインメモリ上にキーバリューストアを構築し、外部のプログラムに対してデータ保存/読み出しなどの機能を提供します。

    「インメモリ高速アクセス」「データ構造サーバ」「永続化機能」などの特徴を持ちます。

    「データ構造サーバ」は、TCPソケットとシンプルなプロトコルを持つサーバクライアントモデルを使用して送信される一連のコマンドによって、変更可能なデータ構造にアクセスできる機能を提供します。したがって、Redisにアクセスする各種アプリケーションは、データ構造に対して同一の方法でアクセスできます。

    ■動作環境

    RedisはC言語で実装されており、「Linux」「OS X」「OpenBSD」「NetBSD」「FreeBSD」などでコンパイルして使用できます。

    「ビッグエンディアンアーキテクチャ」「リトルエンディアンアーキテクチャ」「32ビット」「64ビット」の各システムをサポートし、外部依存関係なしで動作できます。

    ■経緯

    ・2009年 初版リリース

    ■ユースケース

    Redisは、特にRDBMSが苦手とする領域で大きな効果を発揮します。
    ・データストレージ
    ・セッションキャッシュ
    ・フルページキャッシュ
    ・メッセージキューアプリケーション
    ・メッセージブローカー
    ・リーダーボード
    ・出力キャッシュ
    ・非同期高速キュー処理
    ・閲覧数カウンター
    ・リアルタイムランキング集計
    ・最新記事タイトル一覧リアルタイム出力
    ・末尾/先頭から特定件数を削除/フィルタ
    ・1:nに配信するメッセージモデル

    また、多くの企業やサイトで採用されています。
    ・GitHub
    ・Amazon Web Services
    ・Azure
    ・Stack Overflow など

    ■オフィシャルサイト情報

    オフィシャルサイト

    →Redis

    ライセンス情報

    Redisのライセンスは「三条BSDライセンス+他」です。

    詳細について、こちらを参照ください。
    →Redis →Redis license and trademark information

    ダウンロード

    →Redis →Download

    導入事例

    →Redis →Who's using Redis?

    ■同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Memcached」など。


    基本情報

    概要

    memcached(メムキャッシュディー)とは、高性能分散メモリキャッシュサーバです。既存システムに導入してシステムレスポンスの高速化を図れます。

    基本説明

    「memcached」は「memory cache daemon」の略表記です。

    memcachedは、メモリ上で動作するキーバリュー型揮発性キャッシュです。データベースへの問い合わせ結果(データ/オブジェクト)を一時的にキャッシュし、次に同じデータが参照された時にメモリから即座に返せます。データベースへのアクセス回数を減らし、動的Webアプリケーションの高速化/スケーラビリティ向上のために利用できます。

    巨大な分散キャッシュシステムを構築でき、サーバ台数を増やすことで性能を向上できるため、大規模Webサービスなどでよく用いられます。特定の環境のみで使用したり、既存の環境で使用されていないメモリを活用する手段としても活用できます。

    経緯

    memcachedは、Danga Interactive社が中心となって開発されたソフトウェアです。

    TOPに戻る

    主な特徴

    揮発性キャッシュ

    memcachedはメモリ上にデータを格納するため、非常に高速なデータ読み込み/書き込みが可能です。

    しかし、揮発性であるため、memcached自体の停止/ハード電源喪失などが発生すると、memcachedに保存されているデータは消失してしまいます。また、メモリが指定された容量に達すると、LRU(Least Recently Used)に基づいて利用されないキャッシュから自動的に削除されていきます。そのため、データベースのように使用できません。あくまでキャッシュ機構としての使用が想定されています。

    負荷分散「コンシステント・ハッシング」

    memcachedは、「コンシステントハッシング(Consistent Hashing)」アルゴリズムによってデータ分割/負荷分散を行います。分散型システムを構成する各ノード(memcached)が、論理的にリング(輪)を形作るように配置されます。

    シンプルプロトコル

    memcachedサーバとクライアントの通信は、シンプルな行ベースプロトコルによって行われます。複雑なフォーマット(XMLなど)は利用しません。

    イベントハンドリング「libevent」

    「libevent」とは、サーバに対するコネクション数が増加してもパフォーマンスが落ちないようにするための共通仕様ライブラリです。Linuxの「epoll」、BSD系OSの「kqueue」などのイベントハンドリング機能をラップします。

    memcachedは、この「libevet」ライブラリを利用しているため、Linux/BSD/SolarisなどのOS上で高いパフォーマンスを発揮できます。

    非セキュア

    memcachedは、最高のパフォーマンスを得るために、認証/暗号化などのセキュリティ機能を提供していません。セキュリティに関しては、ネットワーク環境/セキュリティツールなどでの確保が必要です。

    TOPに戻る

    同様製品

    同様な機能を提供する製品として、次のようなものがあります。

    オープンソース製品:「Redis」「Kyoto Tycoon」など。

    TOPに戻る

    導入事例

    Facebook/YouTube/Wikipedia/mixiなどのWebサービスで採用され、スケーラビリティ向上のための重要要素になっています。

    TOPに戻る

    ライセンス情報

    memcachedのライセンスは「BSDライセンス」です。このライセンスに従うことを条件として、ソースコードの改変と公開が許可されています。

    TOPに戻る

    ダウンロード

    ダウンロードページ

    TOPに戻る

    ※定期的にメンテナンスを実施しておりますが、一部情報が古い場合がございます。ご了承ください。