FAT47の底辺インフラ議事録

学んだことのメモ帳です

KVSメモ

memcached
特徴
連想配列形式でデータを保存するKVS。データはすべてオンメモリ。
強み
データがすべてオンメモリなため、ディスクI/Oが発生しないので高速に動作する。
keyとValueという形式でデータを扱うので、扱いが楽。
弱み
データが揮発性であること。
ユースケース
RDBMSのキャッシュとして。

tokyo cabinet
特徴
memcachedのような連想配列形式のKVSだが、データはディスクに保持する。
memcached互換のオンメモリを指定することもできる。
強み
ディスクにデータを保持しているので、プログラムを終了させてもデータが失われない。レプリケーションも標準で備えている。
弱み
導入時の障壁の高さ。データ型が数種類存在するので、memcached互換以外を使う場合は独特な処理が必要になる。memcachedほど枯れた技術ではないため原因不明のバグに遭遇することも考えれる。
ユースケース
高速なレスポンスが要求されつつも、消えたら困るデータを利用する場合。
最終ログイン時刻や、アクセスカウント等

redis
memcachedTokyo tyrantの中間に位置するような連想配列KVS。
redisはデータが基本的にはオンメモリで保持される。
一番の特徴としてスナップショットという、データ永続化の仕組みを備えている。
メモリ上のデータを.rdbというファイルに書き出し、再起動する際はこのファイルをメモリに読み込む。
強み
文字型、リスト型、セット型、ソート型、ハッシュ型といった様々なデータ形式を扱える。データはオンメモリにあるため非常に高速。スナップショットによりデータの永続化も可能。レプリケーションも標準で備えている。
弱み
導入事例がまだそこまで多くない。
ユースケース
タイムラインを表示するWebアプリケーション
配列形式のデータに対して頻繁にデータ追加削除を行う場合