使用Redis,实时获取消息

环境

Docker 19.03.1
Redis 版本: 5.0.5
ioredis 版本: 1.0.0
phpredis 版本: 5.0.2

Redis 是一种开源的内存数据结构存储系统。

键-值数据库。
每个数据就像一个表一样。

流动

使用php端通过redis进行值的注册,然后在node服务器端实时接收值。
需要注意的是,在php端使用phpredis,在node端使用ioredis。

顺便说一句,Redis相关的任何库基本上都有相同的方法命名(虽然偶尔有些库使用了小驼峰命名方式,但这是可以接受的)。

编程程序

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

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

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();
})();

结果 (jié guǒ)

当在PHP端以API的方式访问”send-redis”时,
在Node端可以实时获取到消息。

顺便提一下,如果想要使用strams类型的数据,只需使用xadd()即可。(请注意,有些旧的库可能不支持xadd的功能)在这种情况下,获取消息不再是直接的方式,而是将发布作为通知获取stream的时机的存在。

广告
将在 10 秒后关闭
bannerAds