Open5
redis pub subメモ
https://reffect.co.jp/laravel/redis-pub-sub-dont-understand を参考にredisのpubsubについて学習する。
- publish→channel→subscribe
publishするとchannelに情報がたまる。
購読しているsubscriber全員にその情報が送信される?
これらの仕組みを使用することで、chatなどが作られている
というようなイメージ
docker,docker-compose ymlを使ってredis環境を構築する
docker-composeファイルは以下の通り
docker-compose.yml
version: "3"
services:
pubsub:
image: redis:5.0-alpine
tty: true
# redis serverを起動
$ docker-compose up -d
# redisコンテナに入る
/ $ redis-cli
購読してみる
data # redis-cli
127.0.0.1:6379> subscribe sample
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "sample"
3) (integer) 1
127.0.0.1:6379> subscribe sample2
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "sample2"
3) (integer) 1
pubsubの動きを確認する。
- ターミナルを3つ起動
- 一つはpublish ,残り2つはsubsribe
- publish側からメッセージを送信して2つのsubscribeに届くことを確認する
2つsubscribeがsampleを購読
$ redis-cli
127.0.0.1:6379> subscribe sample
sampleにたいしてmessageを送信
$ redis-cli
127.0.0.1:6379> publish sample 'test'
(integer) 2
メッセージが届いたかどうか
127.0.0.1:6379> subscribe sample
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "sample"
3) (integer) 1
1) "message"
2) "sample"
3) "test"