【php-redis】pub/sub 公开和订阅

发布时间:2020-07-12 14:36:04 作者:756643920
来源:网络 阅读:1149

网上大多的写法大多直接在终端里的写法,没有一个完整的浏览器直观的例子,直接上代码:

订阅

ini_set('default_socket_timeout', -1);
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->auth('lizongying');
$channel = 'msg';
$redis->subscribe(array($channel), 'callback');

function callback($redis, $channel, $message)
{
    if (ob_get_level() == 0) {
        ob_start();
    }
    echo str_pad(' ', 1024 * 8);
    echo date('Y-m-d H:i:s');
    var_dump($message);
    flush();
    ob_flush();
    ob_end_flush();
}

公开

$redis = new Redis();
$redis->connect('127.0.0.1',6379);
$redis->auth('lizongying');
$channel = 'msg';  // channel
$msg = '33'; // msg
$redis->publish($channel, $msg);
echo date('Y-m-d H:i:s');
var_dump($channel.$msg);

几个点:

1 在命名空间内

new \Redis();

2 如果有密码

$redis->auth('lizongying');

3 保证socket不超时

ini_set('default_socket_timeout', -1);

4 及时刷新 测试用的chrome buffer长度加到了1024*8才起作用 一些教程里是1024 或者 4096

    if (ob_get_level() == 0) {
        ob_start();
    }
    echo str_pad(' ', 1024 * 8);
    echo date('Y-m-d H:i:s');
    var_dump($message);
    flush();
    ob_flush();
    ob_end_flush();

保健食品注册咨询专家

推荐阅读:
  1. server2003 32位系统搭建PHP
  2. 微信支付统一下单用PHP的实现方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php redis

上一篇:Redis笔记-Hash数据类型(三)

下一篇:网络设备配置备份工具

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》