11/26(土)はKitazawa.rbの日でした。地域技術者コミュニティとしてゆるく活動しているKitazawa.rbですが、ついに10回目になりました。会場はOpenSource Cafe。勉強会用に場所を借りるのは別料金のようですが、オープンソースに関連した話だと半額になるようです。一応Rubyのコミュニティなので、半額にしてもらいました。ありがとうございました!
発表ネタがあったのは@yoheiさんのRedisの話とbackbone.js。backbone.jsの話は@mah_labが先日話したものの焼き増しです。
Redisの話
Redisとは永続化に対応しているインメモリDB(KVS)です。memcachedよりも速いという話。爆速ですね。
基本はcacheサーバとして使うと思うのですが、Instagramは写真とユーザの紐付きをRedisで永続化しているようです。とはいえ、Redisは単純すぎるKVSのためそのままクラスタ構成を取ることができないため、EC2のハイメモリタイプを使うというスケールアップで実現しているようです。
herokuでも使えます
Redis To Goというアドオンを使えばherokuでもredisを使うことができます。herokuかわいいよheroku。
Pub/Subが気になる
ところでRedisはPub/Sub型の通信をサポートしています。Pub/Sub型通信というのは、メッセージを作成して送信する送信側サーバをPublisher、受信する側のクライアントをSubscriberとするメッセージングモデルのことです。KVSにこういった機能が備わっているのは珍しいらしく、リアルタイムWebが注目される昨今ではかなり使えそうな機能です。
というのも、Redisを中継サーバとすることでWebSocketサーバをスケールアウトさせることができるからです。
EventMachineでWebSocketサーバを立てた時の例:PubSubbin’ with Redis, EventMachine, and WebSockets
node.jsでWebSocketサーバを立てた時の例:Redis の Pub/Sub を使って Node.js + WebSocket のスケールアウトを実現する方法
そのうちリアルタイムWebを活用したサービスもやってみたいですねえ。