Redis发布订阅
像socket监听端口一样去监听一个频道 如果频道又消息发布订阅者会立即收到发布通知
一个频道可以被多个用户订阅 一个用户也可订阅多个频道 当频道有信息发布时则立即收到通知
通过此功能可以实现一些消息推送缓存监测等功能
# 发布者
// 连接redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// 发布频道信息
// 频道名:one
$message = 'this is one message';
$num = $redis->publish('one',$message);
// 收到订阅者的数量
echo $num;
# 订阅者
// 防止超时
set_time_limit(0);
ini_set('default_socket_timeout',-1);
// 连接redis
$redis = new Redis();
$redis->connect('127.0.0.1',6379);
// 订阅频道 ( 可一次订阅一个或多个频道 ) 频道名:one
$channel = $redis->subscribe(array('one'),'callback');
/*
* 频道回调信息
* @param object $redisSocket redis实例
* @param string $channel 频道名称
* @param string $message 收到的信息
*/
function callback($redisSocket,$channel,$message){
echo $message;
}
网友评论