Redis 发布订阅

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;
}

你可能感兴趣的:(Redis 发布订阅)