php 订阅功能,Php 使用Redis 发布订阅功能

1. 简介

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

cec941a228a6

pubsub1

当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:

cec941a228a6

pubsub2

2. 实战

1. 订阅端代码

$redis = new Redis();

$redis->connect('localhost', 6379);

$redis->subscribe(['order'], function ($redis, $chan, $msg) {

var_dump($redis);

var_dump($chan);

var_dump($msg);

});

值得一提的是subscribe函数的第一个参数是一个数组,这意味着可以订阅多个发布端,回调函数里面有3个参数,第一个是redis实例,第二个是订阅的频道,第三个是订阅的消息内容,在命令下运行该文件就会进入等待发布端发布消息的阻塞状态!

2. 发布端代码

$redis = new Redis();

$redis->connect('localhost', 6379);

$order = [

'id' => 1,

'name' => '小米6',

'price' => 2499,

'created_at' => '2017-07-14'

];

$redis->publish("order", json_encode($order));

在命令行下运行该代码,就会发现订阅端那边输出了消息:

class Redis#1 (1) {

public $socket =>

resource(5) of type (Redis Socket Buffer)

}

string(5) "order"

string(70) "{"id":1,"name":"\u5c0f\u7c736","price":2499,"created_at":"2017-07-14"}"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值