自分で作ったり提供したりするものは、まず自分自身で使ってみろろということです。自分じゃ使わないものなら人はいくらでも無責任にも無思考にもなれる。そういう投げやりな「サービス」やら「プロダクツ」なんて、だれだってイヤだ。自分が作り手と同時に利用者の立場になれば、ちゃんと使えるレベルのものを提供しようとします。

2012年5月16日水曜日

高性能key-valueデータベース-Redis

Redisの機能
Redisを見るのは始めてでしょうか?ここでは、重要な機能と、多くの情報へのリンクが書かれています。

スピード
RedisはANSI Cで書かれていて、すべてのデータセットをメモリ内に読み込むため、危険なほどのスピードで動作します!エントリーレベルのLinuxマシンで、110,000 SET/秒、81,000 GET/秒を達成することができます。これについては、 speed を参照してください。

また、Redisはコマンドの パイプライニング をサポートしているため、複数の値を1つのコマンドで取得したり設定できるため、クライアントライブラリとの通信をスピードアップすることができます。

永続化
すべてのデータがメモリ上にあり、変更は非同期でディスク上に書き込まれます。書き込むタイミングについては、最後に保存してからの経過時間および、アップデートの回数、もしくはその両方など、柔軟にポリシーを設定することができます。

もし、データが失われることが許容できないのであれば、追記専用ファイル永続化モードもサポートしています。詳細については、 persistence か、 追記専用ファイルモード を参照してください。

データ構造のサポート
Redisの値としては、伝統的なキー・バリュー・ストアと同様、 文字列型 をサポートしていますが、これ以外にも、 リスト型 、 セット型 、 ソート済みセット型 、 ハッシュ型 も使えます。このデータ型に対しては、要素のpush/pop、add/remove、またはサーバサイドでのセット間の和、積、差など、型によって様々な操作をサポートしています。Redisは セット型 と リスト型 に対して、異なる種類のソート機能をサポートしています。

Redisを、 データ構造サーバ と考えると、重要な問題のモデル化に使用することもできます。Redisにおける 文字列型 の取り扱い方、 リスト型 、 セット型 、 ソート済みセット型 をサポートするコマンドについて詳しく知るためには、 datatypes の説明を参照してください。

アトミックな操作
Redisは、データ型ごとの操作は アトミック に動作します。そのため、キーの増加、セットに対する要素のadd/remove、カウンターの増加などの操作は、すべて安全に完了します。

さまざまな言語のサポート
Ruby、Python、Twisted Python、PHP、Erlang、Tcl、Perl、Lua、Java、Scala、Clojureなどから好きな言語を選べます。すべての詳細については、 supported_languages のリストをチェックしてください。

もしお気に入りの言語がまだサポートされていなければ、自分でクライアントのライブラリを自分で書くこともできます。 プロトコル仕様 はとてもシンプルです。

マスター/スレーブのレプリケーション
Redisはシンプルで高速なマスター/スレーブのレプリケーションをサポートしています。設定ファイルに1行足すだけで設定が完了し、Amazon EC2のインスタンスにある、1000万のキーがあるマスターからスレーブに対して初回の同期をかけると、21秒で終わります。

シャーディング
Redisであれば、他のキー・バリュー・ストアのように、複数のRedisインスタンス間で簡単にデータセットを分散させておくことができます。この機能は基本的に、言語クライアントライブラリに依存しています。

Redisのデータの分散やワーク負荷について詳しく知りたい場合は、 sharding を参照してください。

ホット・バックアップ
TODO
シンプルなインストール・セットアップ・管理

Redisをインストールするには、アーカイブをダウンロードして、回答して、makeを実行するだけです。管理はほぼゼロで、ほんの数分で使用開始できます。

詳しくはRedisの installation 、 setup_and_management を参照してください。

移植性
RedisはANSI Cで書かれており、Linux、BSD、Mac OS X、SolarisなどのほとんどのPOSIXシステムで動作します。また、Win32上でも、Cygwinを使ってコンパイルと動作に成功したという報告もありますが、現在はWindowsは正式にはサポートしていません。
自由なライセンス

Redisはとても自由なBSDライセンス [1] の元でフリーソフトウェアとしてリリースされています。

パフォーマンステスト
SET操作:110000回/秒
GET操作:81000/秒

テスト環境:Linux 2.6, Xeon X3320 2.5Ghz

memcachedの代替品としてキャッシュサーバーとしてよく使うでしょう。

URL
http://redis.shibu.jp/

ダウンロード
http://redis.io/download

0 件のコメント:

コメントを投稿

ホームページ