发布、订阅

发布 publish

描述: 将消息发布到频道

所需参数

  • channel: 要发布到的频道
  • message: 消息

例子

  1. Redis::publish('chan-1', 'hello, world!'); // 发送消息
  2. Redis::publish('chan-2', 'hello, world2!'); // 发送消息

订阅 subscribe

描述: 订阅频道。

所需参数

  • channels: 多个通道名称需要是一个数组
  • callback: 回调函数接收3个参数。
    • redis redis实例
    • chan 通道名称
    • msg 接受到的消息(mixed)

例子:

  1. function f($redis, $chan, $msg) {
  2. switch($chan) {
  3. case 'chan-1':
  4. ...
  5. break;
  6. case 'chan-2':
  7. ...
  8. break;
  9. case 'chan-2':
  10. ...
  11. break;
  12. }
  13. }
  14. // 订阅 3 个 频道
  15. Redis::subscribe(['chan-1', 'chan-2', 'chan-3'], 'f');

按匹配模式订阅频道 pSubscribe

使用 psubscribe 方法可以订阅通配符频道,可以用来在所有频道上获取所有消息。

参数

  • patterns 匹配规则数组
  • callback 接受到消息回调的闭包
    • redis redis 实例
    • pattern 匹配的规则
    • chan 通道名称
    • msg 接收到的消息(mixed)

例子:

  1. Redis::psubscribe(['*'], function ($redis, $pattern, $chan, $msg) {
  2. echo "Pattern: $pattern\n";
  3. echo "Channel: $chan\n";
  4. echo "Payload: $msg\n";
  5. });
  6. Redis::psubscribe(['users.*'], function ($redis, $pattern, $chan, $msg) {
  7. echo "Pattern: $pattern\n";
  8. echo "Channel: $chan\n";
  9. echo "Payload: $msg\n";
  10. });