RedisはデータベースのAK47

redisを始めたばかりの開発者の感想。redisの何が嬉しいかをわかりやすく説明してくれている。
http://flazz.me/redis-the-ak-47-of-databases
原文の見出しを()に入れるので、元記事の実例を参照しながら読むことを勧める。

簡単 (Easy)

コマンド一発でインストールし、起動できる。クライアントの使用も極簡単だ。

簡潔なプロトコル (Simple)

  • 人にもマシンにも優しいプロトコル
  • 設定ファイルがちゃんとコメントされていて、その数やディフォルト値もリーズナブル。
  • authenticationも簡単
  • バックアップも簡単。ファイルを一つコピーするだけ。{sqliteみたい}

パワフル (Powerful)

  • ドランザクションあり: MULTI ... EXEC
  • optimistic locksもある: WATCH mykey ... EXEC

Pub/Sub

  • SUBSCRIBE <チャンネル>
  • PUBLISH <チャンネル> <メッセージ>
  • これで前者にメッセージが届く

(No Surprises)

  • replicationによりスケールする
  • データセットは(ディフォルトでは)RAMに入っているので速い。定期的にディスクに保存。
  • 保存間のデータは? ログをリプレイすることにより回復可能。
  • ログのfsyncの間隔は? ディフォルトで1秒毎。変更可能。
  • データをロスの発生するウインドーはあるが、それを意識して管理するという考え方。

AK-47の魅力 (AK-47 Appeal)

  • 80%の作業はソフトの20%の機能に費される。Redisは重要な少数の機能を素晴しく実装している。
  • AK47は(発明当初)大量の弾を使うので嫌われていたが、ソ連はこれをよしとして大量の弾を供給する方針にした。RedisとRAMの関係に似ている。

AK-47より優れた銃はあるが、泥づけにしても無条件に発射できるのはAK-47だけだ。 {この話、親父からも聞いたことがあるぞ-tengu} より良いデザインの銃はあるが、発展途上国で生産できない。二つのものだけあればAK-47は機能する: AK-47自体と弾だ。Redisも似ている。RedisとRAMがあればどこでも稼動できる。シンプルなものは本質的に頑丈だ。

断わっておくが、私はRedisの初心者だ。ここで書いたことしから知らないし、本番で走らせたこともない。AK-47はもとより銃一般の知識もそれを撃ったこともない。その高き悪評を知るのみだ。



わかりやすいNoSQLの説明だ。今週のHNはRedisが目立つ。作者とのインタビューもあるので後紹介したい。