redisにはpub/subという機能があります。
これはpublish/subscribeパターンという仕組みの実装で、発行者と購読者という役割でメッセージの配信を行うものです。
では、redisのコンソールを使って試してみたいと思います。
redis1とredis2という2つのホストを使用します。
redis1ではローカルホストでredis-cliに接続します。
redis2ではredis1のredis-clに接続します。
redis1
# redis-cliredis 127.0.0.1:6379>
redis2
# redis-cli -h 10.0.0.200redis 10.0.0.200:6379>
メッセージの購読はチャンネル名を指定します。
redis2でgreetingというチャンネル名でsubscribeコマンドを実行します。
redis2
redis 10.0.0.200:6379> subscribe greeting Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "greeting" 3) (integer) 1
こうすることによって、redis2はredis1のgreetingというチャンネルのメッセージの待ち受けが始まります。
続いて、redis1でメッセージを発行します。
greetingというチャンネルで「Hello World!」という内容のメッセージを発行します。
redis1
redis 127.0.0.1:6379> publish greeting "Hello World!" (integer) 1 redis 127.0.0.1:6379>
すると即座にredis2のクライアントにHello Worldというメッセージが受信されたことがわかります。
redis2
redis 10.0.0.200:6379> subscribe greeting Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "greeting" 3) (integer) 1 1) "message" 2) "greeting" 3) "Hello World!"
このように、redisでは他のサーバーのredisクライアントとメッセージのやりとりが可能です。
クライアントコンソールでは効能がわかりにくいので、次回はアプリケーションレベルで試してみたいと思います。
以上です。