pub/sub
オンメモリのKVSでありながら、なおかつディスクに永続化する機能も持つRedisですが、あるクライアントプロセスから別のクライアントプロセスへ通知を送る、いわゆる「pub/sub」も提供しています。
「pub/sub」とは「publish」と「subscribe」の略で、日本語訳するなら「発行」と「購読」。あるチャンネルに誰かがイベントを「発行」すると、そのチャンネルを「購読」している人すべてにそのイベントが通知される、といった意味。
ゴール
- 3分でredisのpub/subを体験してみる
redisのインストールなどは MacにRedisをインストールしてことはじめ【redis】【MacOS】 - DRYな備忘録をご参考。
登場人物
- redisサーバプロセス
- redisクライアントプロセス その1
- redisクライアントプロセス その2
で、クライアントその1がSUBSCRIBE
してるチャンネルにクライアントその2からPUBLISH
してみる
まずサーバを立ち上げます
% redis-server
おわり
クライアントその1でSUBSCRIBE
別のターミナルで
% redis-cli
で、こうなるので
% redis-cli 127.0.0.1:6379> 127.0.0.1:6379> SUBSCRIBE my_channel Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "my_channel" 3) (integer) 1
これでおしまい。my_channel
と名付けたチャンネルを「購読」できている状態です。
クライアントその2でPUBLISH
さらに別のターミナルで
% redis-cli 127.0.0.1:6379> 127.0.0.1:6379> PUBLISH my_channel "Hello! This is clientB" (integer) 1 127.0.0.1:6379>
とすると…
結果こうなる
もっとくわしく
複数のチャンネルを、チャンネル名のパターンマッチでsubscribeできたりするみたい
雑感
コードを読むのが苦手な僕は「もうたくさん書くしかねえな」と腹を括ったわけだけど、その成果がだんだんと表出してきて、最近はドキュメントとか他人が書いたコードも読めるようになってきた。たぶん知識が糞不足してるときに何かを読んでも意味が薄くて、そこそこ自分に知見が溜まってからじゃないといけないんだろうなと思った。
それにしても有意義なゴールデンウィークを過ごしている
DRYな備忘録
- 作者: Josiah L. Carlson,長尾高弘
- 出版社/メーカー: KADOKAWA/アスキー・メディアワークス
- 発売日: 2013/12/27
- メディア: 大型本
- この商品を含むブログ (4件) を見る