Help us understand the problem. What is going on with this article?

redis使って、リアルタイムでメッセージ取得

環境

docker 19.03.1
redis_version:5.0.5
ioredis:1.0.0
phpredis:5.0.2

流れ

php側からredis使って、値を登録して、nodeサーバー側で値をリアルタイムで受け取る。
なお、php側ではphpredis。node側ではioredisを使う。

ちなみに、redis系のどのライブラリも、大体メソッドの名前は同じ(たまにローキャメルケースになってるライブラリもあるがそこはノリでいける)

プログラム

index.php
//エンドポイント取得
$path = $_SERVER['REQUEST_URI'];
$redis = new Redis();
$redis->connect('ホスト',ポート);

if ($path === '/send-redis') {
   //「test_hoge」チャンネルに向かってパブリッシュ
   $redis->publish('hoge_test','Hello world');
}
hoge.js
const Redis = require('ioredis');

(async () => {
  console.log('redis起動しました');
  const redis = new Redis(ポート, 'ホスト');
  redis.subscribe(["hoge_test"]); 
  redis.on('message', function(channel, message) {
    console.log('channel: ' + channel + ', message: ' + message); //channel:hoge_test,message:Hello world
});

  redis.disconnect();
})();

結果

PHP側で、API感覚で「send-redis」にアクセスしたら、
node側でリアルタイムにメッセージが取得できた。

ちなみに、strams型のデータ使いたかったら、xadd()使えばいける。(xaddが使えない古いライブラリもあるので注意)その場合直接メッセージを取得する感じではなくなるので、パブリッシュはstreamを取得するタイミングを知らせるための存在となる。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away