RedisはデータベースのAK47
redisを始めたばかりの開発者の感想。redisの何が嬉しいかをわかりやすく説明してくれている。
http://flazz.me/redis-the-ak-47-of-databases
原文の見出しを()に入れるので、元記事の実例を参照しながら読むことを勧める。
簡単 (Easy)
コマンド一発でインストールし、起動できる。クライアントの使用も極簡単だ。
簡潔なプロトコル (Simple)
パワフル (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が目立つ。作者とのインタビューもあるので後紹介したい。