Redisについて
VMWareがスポンサーやってるOSSのKVSの1つ。特徴をまとめてみる。
早い
メモリベースにデータを展開し、非同期書き込み。CassandraのSSTableみたいなものか。TokyoCabinetなんかはディスクベースなので信頼性の面ではTCに利点がありそうだ。
あとはクライアントからサーバーへのリクエストに対して、「Pipelining」が使用できる。これは同時にいくつものコネクションを処理できるというすぐれもの。
データ構造
文字列、バイト、リスト/セット、ハッシュ等各種形をサポートしてる。
言語サポート
独自プロトコルだが、クライアントライブラリが山ほど用意されている。
PHPer的にみると
Predis, phpredis等のライブラリがある。特に後者はCで書かれているライブラリ(extension)なので高速な動作が期待できるはず。
クラスタリング
- 基本的にMaster x1 + Slave xN構成
- Slave1つに対して更にSlaveが複数設定できる
- Gossipによる相互ノード監視
相互ノード監視をしているので、SPOFが無いこれは嘘。Master/Slave構成なのでMasterが死ぬとアウト。SPOFは存在する。- 3.0のClusteringが完成すれば...