バージョン2.0がリリース

memcachedと“正反対”、Redisが仮想メモリをサポート

2010/09/07

 KVS(キー・バリュー・ストア)に分類されるオープンソースのRedisの新バージョン、「Redis 2.0.0」が2010年9月5日にリリースされた。Redisはmemcachedと同様にキーと値のペアをメモリ上に保持するKVSの一種だが、3つの際立った特徴がある。1つはハッシュ以外のデータ構造もサポートしていることで、リスト型、集合型、順序付き集合型などのデータ構造が扱え、サーバ側でコレクションに対するpush/pop、コレクション同士のunion/intersection、数値のincr、decrなどの操作がアトミックに行える。バージョン2.0では複数の操作を1つにまとめてアトミックに操作するコマンドも増えている。

 もう1つのRedisの特徴は、マスター・スレーブによるレプリケーション設定ができ、リード側のスケールアウトが容易にできること。

 そして3つ目の特徴は、メモリ上のデータセットをプライマリとしつつ、非同期でディスクへ書き出しできること。ディスク書き出しのタイミングは、設定で経過秒数や累積オペレーション数を指定できる。

 RedisはCで各種データ構造を実装したものをデーモンとしたようなソフトウェアで、リード・ライトともに非常に高速なのが特徴。ただ、実メモリに乗り切らないデータセットは扱えないことから利用局面が限定的だった。バージョン2.0では、新たに独自に仮想メモリ機構を実装。実メモリに乗り切らないデータをディスクへ書き出す仕組みを取り入れた。

 これはOSのスワップの仕組みそのものだが、Redisでは、あえて独自で実装したという(実装にはLinuxカーネルを参考にしたという)。理由の1つは、データ構造が分かっている分、シリアライゼーションによる圧縮効果が高く(最大で10倍程度)、OSに依存するよりもはるかに効率がよくなること。もう1つの理由は、キー・バリューのうち、キーだけはすべてメモリ上に保持するという設計が可能なため。キーがすべてメモリに乗っていることから、Redisの高速性は保たれるというわけだ。また実際のバリューのほうがいくら大きくなっても、メモリ消費量はキーの数にだけ依存することになり、100万キー当たり160MBのメモリ消費で済むという。

MySQL+memcachedと正反対のアプローチ

 メモリに乗り切るデータセットであれば、RDBMSを使うよりも高速というのがRedis登場時のウリだったが、Redis2.0が仮想メモリをサポートしたことで、データサイズによらずRedis単体で「MySQL+memcached」という定番のアプローチと似た構成が可能になる。つまり、頻繁にアクセスのあるホットデータはメモリ上から読み、そうでないものはディスク上から読む、という構成だ。ただ、Redisプロジェクト創始者のSalvatore Sanfilippo氏は、仮想メモリを実装したRedis2は、memcachedとは、ちょうど正反対のアプローチになると指摘し、いくつかメリットを挙げている。

 1つは、キャッシュのインバリデーションが不要なこと。メモリ上のデータがプライマリであるため、メモリ上にデータがある限り、それを読めば済む。MySQL+memcachedでは、データがキャッシュ用に複製されるというプロセスがあるため、何らかの仕組みでキャッシュの整合性を保つ必要がある。また、ページネーション処理などで複雑な条件付きのクエリをキャッシュするのは難しいので、Redisのようにメモリ上のデータ操作が可能な実装のほうが扱いやすいのだ、ともSanfilippo氏は書いている。

 もう1つの指摘は、MySQL+memcachedが主にリードだけスケールしやすいのと異なり、Redisはライト処理でもスケールするということ。

 Redisは2009年2月にSalvatore Sanfilippo氏が開始したプロジェクト。その後、2010年3月にヴイエムウェアがSanfilippo氏を雇入れ、開発ペースが上がっていたようだ。RedisはBSDライセンスで配布されていて、ANSI C対応コンパイラ、POSIX準拠のシステムで利用できる。

関連リンク

(@IT 西村賢)

情報をお寄せください:

Coding Edge フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

キャリアアップ

- PR -

注目のテーマ

ソリューションFLASH

「ITmedia マーケティング」新着記事

【Googleが公式見解を発表】中古ドメインを絶対に使ってはいけない理由とは?
Googleが中古ドメインの不正利用を禁止を公式に発表しました。その理由や今後の対応につ...

「TikTok禁止法案」に米大統領が署名 気になるこれからにまつわる5つの疑問
米連邦上院が、安全保障上の理由からTikTokの米国事業の売却を要求する法案を可決し、バ...

「気候危機」に対する理解 日本は米国の3分の1
SDGsプロジェクトはTBWA HAKUHODOのマーケティング戦略組織である65dB TOKYOと共同で、「...