美文网首页
Php 使用Redis 发布订阅功能

Php 使用Redis 发布订阅功能

作者: Anomaly | 来源:发表于2017-07-14 14:44 被阅读0次

1. 简介

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:


pubsub1

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


pubsub2

2. 实战

1. 订阅端代码
<?php
$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. 发布端代码
<?php
$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"}"

相关文章

  • Php 使用Redis 发布订阅功能

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

  • Redis高级

    Redis高级 发布订阅 Redis提供了发布订阅功能,可以用于消息的传输 Redis的发布订阅机制包括三个部分,...

  • 死磕Redis5.0订阅和发布

    最近和一些朋友讨论Redis的订阅和发布功能,发现有些公司喜欢用Redis的订阅和发布功能来当作消息中间件来使用,...

  • Redis发布

    发布/订阅 最后(但肯定不是最不重要的)是Redis的发布/订阅功能。发布/订阅的使用场景确实非常多。我已看见人们...

  • Redis发布与订阅

    一、发布与订阅 实际中,redis很少使用发布与订阅来代替MQ角色。 二、使用redis客户端实现 Redis 发...

  • redis订阅发布

    问题描述 在redis集成到spring后, 使用了redis的订阅与发布的功能,在每次发布的时候, 会出现疯狂日...

  • SpringBoot 整合Redis 实现发布订阅

    简介 Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者,Ch...

  • golang redis发布订阅 --- 2022-04-03

    Redis提供了发布订阅功能,可以用于消息的传输,Redis的发布订阅机制包括三个部分,发布者,订阅者和Chann...

  • 最通俗易懂的Redis发布订阅及代码实战

    发布订阅简介 除了使用List实现简单的消息队列功能以外,Redis还提供了发布订阅的消息机制。在这种机制下,消息...

  • redis发布订阅模式

    最近项目中,有个功能点是利用redis的发布订阅机制,进行服务器本地缓存数据同步。由于redis发布订阅功能的可靠...

网友评论

      本文标题:Php 使用Redis 发布订阅功能

      本文链接:https://www.haomeiwen.com/subject/rkanhxtx.html