YMQLoggerRecorder.class.php 1.64 KB
<?php
require_once 'YMQLoggerRedisHelper.class.php';
/**
 * 设置用户在线数据
 * @author ice.deng
 *
 */
class YMQLoggerRecorder
{
    private static $redis;
    /**
     * 创建 Redis 对象
     * 
     */
    private static function _createRedis()
    {
        if(!isset(self::$redis))
        {
            self::$redis = new YMQLoggerRedisHelper();
        }
        else
        {
            // TODO 测试此处有 socket 过期现象
            $ping = @self::$redis->mRedis->ping();
            //判断连接是否断开
            if($ping != '+PONG')
            {
                self::$redis = new YMQLoggerRedisHelper();
            }
        }
    }
    
    /**
     * 记录日志
     * 
     * 日志的key为日志类型, 内部数据以顺序记录. 值为字符串格式数据:
     * 
     */
    public static function set($logType, $data)
    {
        self::_createRedis();
        self::$redis->mRedis->lPush($logType, $data);
    }
    /**
     * 删除用户在线状态信息
     * @param $uid 用户ID
     */
    public static function delete($logType)
    {
        self::_createRedis();
        self::$redis->mRedis->delete($logType);
    }
    
    /**
     * 返回当前日志库中记录数
     * @param $uid 用户ID
     */
    public static function size($logType)
    {
        self::_createRedis();
        return self::$redis->mRedis->lSize($logType);
    }
    
    public static function get($logType)
    {
    	self::_createRedis();
    	return self::$redis->mRedis->rPop($logType);
    }
    
    public static function save()
    {
    	self::_createRedis();
    	return self::$redis->mRedis->save();
    }
}
?>