网上大多的写法大多直接在终端里的写法,没有一个完整的浏览器直观的例子,直接上代码:
订阅
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();
保健食品注册咨询专家