## 什么是redis订阅 Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。 这个可以理解为 我关注了你 你发了信息我就可以立马收的到 。 ## 发布订阅的场景在哪里        以下是我理解的几个场景当然还有更多的场景        2.1 典型的网页上的消息可以做到实时通知        2.2 订单下单以后 通过redis订阅实时通知库存改变         2.3 接口需要做一些比如发送邮件 写日志等功能的时候可以运用到redis订阅了 这样会加快接口返回时间 3php如何实现 实时发布订阅 知道了什么是redis订阅 并且知道redis订阅的场景 接下来就是撸代码了 ## 实战 订阅端代码 cli.php ~~~ <?php    while (true){        echo time();        ini_set('default_socket_timeout', -1);  //不超时        $redis = new Redis();         $redis->connect('127.0.01', 6379, 3600);      $redis->auth('123456'); //设置密码     $result = $redis->subscribe(['test'],'callback');     print_r($result);       sleep(0.1);    }     function callback($instance,$channelName,$message)    {         print_r($message);    } ~~~ 发布端的代码 pub.php ~~~ <?php    $redis = new Redis();    $redis->connect('127.0.0.1', 6379, 3600);     $redis->auth('123456'); //设置密码    $message = '测试一下'; $ret=$redis->publish('test',$message); ~~~ ## 概念 | 名称 | 含义 | | --- | --- | | channel | 频道:生产者和消费者直接操作的对象 | | publish | 生产者:向channel发送消息 | | subscribe | 消费者:订阅一个或多个channel | | psubscribe | 消费者:匹配订阅一个或多个channel | | punsubscribe | 退订:匹配退订,无参数则退订全部channel | | unsubscribe | 退订:退订指定的channel,无参数则退订全部channel | | pubsub | 列出当前活动channel(至少有一个订阅) |