2. システム概要 homingは、アメーバピグ関連サービスのいずれかにログインしているユーザに対して、各サービスの通知情報を横断的にプッシュ通知します。 システムの構成は以下の通りです。 図2-1. システム概要 2-1. APIサーバ ユーザへの通知要求を受け付けるREST fullなAPIを備えたWebサーバです。 Node.jsのClusterによる、master/worker構成で稼働します。 通知要求はワーカプロセスで処理します。 図2-2. APIサーバ 2-2. Redisサーバ(データストア用) 一時的なデータをストアするためのRedisサーバです。 sentinelプロセスによる、master/slave構成で稼働します。 ストアされたデータはメモリ上のみで管理し、ディスクへの書き込みは行いません。 以下の情報を管理します。 ユーザのオンライン情報 ユーザIDの索
https://github.com/you21979/bot-irc-notifier サーバーからircにサーバー落ちたよとエラーメッセージを通知をするシステムが欲しかったので作ってみた。 ただ作るだけじゃおもしろくないのでtypescriptで作ってみたけど単純な仕組みなので あまり型の恩恵ない。 さて、実装方法だがredisを使っている なんで使っているかというと ・redisはコマンドラインから簡単にメッセージを流せる ・redisとircはどちらもチャンネルと言う概念がある ・npmにライブラリがある チャンネルという共通点を生かしてredisのチャンネルにポストすればirc上の同じチャンネルにポストするようにすればチャンネルも送信時に選べるしお手軽。 (irc側は事前にチャンネルに入っておく必要があるけども) こういうシステムとシステムを繋げるのにnodeはお手軽にできるから
visionmediaさんが推しているからなのか? node.jsとredisの相性が良い理由は全く把握していないけど、node.jsでライブラリ、ドキュメントが充実しているKVSはredisだった。 redisは、リスト、ハッシュ、集合のデータ構造を保存できるから、そういうデータ構造使おうとすると、ハイレベルなラッパーがあった方がやっぱり使いやすい。 redbackの良いところは、redisの基本データ構造をサポートするだけでなく、それらに色々な機能を追加したデータ構造も実装してくれているところ。あと自分で定義できるところ。 ドキュメントは、この自動生成されたやつしか見当たらず。この形式検索できないしあんまり見易くないと思うんだけど、どうですか? (RubyのRDocのが良いなあ。) http://redbackjs.com/api.html // redis-nodeパッケージに依存し
最近Node.jsで遊んでます。データベースとしてそれほど大袈裟なものは必要ないのでRedisを試してみようかといろいろいじってるんですが難しいです(特に取得結果をコールバックで受け取る流れに慣れていなかったので)。セッション管理としてではなく普通のデータベースとしてRedisを使ってみたので、そのメモ代わりとしてちょこっと書いてみます。 まずはNode.jsとnpmはインストール済みとしてRedisをインストールします npm install redis最初はいちばんシンプルにデータをset()して、それをget()するというもの。 redisExample.js var redis = require('redis'); var client = redis.createClient(); client.set('momota', ['error', 'argument'], func
対象読者 node.js/npmはインストール済み macなどの*nixを持っている redisはよくわからない redisのいいところ 小さい! 持ち運びしやすい! 良い意味で何もない! 純粋KVSより少し豊かなほどよい甘み 簡素ですので、パフォーマンスなどに関して色々「狙いやすい」 あの、express作者さんもよく使ってらっしゃいますよ 僕みたいなコンシューマーゲーム難民に是非オススメしたい、組み込み系の薫りとwebっ子っぽいカジュアルな感覚が同居したシンプルDBとなっております。 redis本体 ダウンロードページから最新版(この文章を書いている時点では2.4.4)をダウンロードして、下記のように一行makeと打てば終わりです。 make 続けてインストールするか否かはお任せします。この段階で、「展開ディレクトリ/src/redis-server」がありますので、起動しておきます。
Node におけるスケールアーキテクチャ考察(Scale 編)というエントリーを読んで、RedisはPub/Sub型通信をサポートしているという事を知りました。エントリーでも言及されているように、Pub/Subを使えば Node.js + WebSocket サーバをスケールする際に、中継サーバの役割を果たす事が出来るはずです。 そんな訳で実際に Node.js と Redis を使って Pub/Sub の実験を行なってみました。ユーザが別々のNode.jsサーバに接続していてもWebSocketを通してメッセージのやり取りを出来るようにします。 イメージとしてはこんな感じです。 下準備# Ubuntuの場合は apt-get で1発でインストールする事が出来ます。 $ sudo apt-get install redis npmでredisモジュールをインストールします。 $ npm i
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く