YMQRBACRelationSetData.class.php 2.53 KB
<?php
require_once dirname(__FILE__). '/YMQRBACRelationRedisHelper.class.php';
/**
 * 设置应用RBAC关联数据到Redis
 */
class YMQRBACRelationSetData
{
    /**
     * 存放Redis对象
     * @var object
     */
    private static $redis;
    
    /**
     * 创建 Redis 对象
     */
    private static function _createRedis()
    {
        if (!isset(self::$redis))
        {
            self::$redis = new YMQRBACRelationRedisHelper();
        }
        else
        {
            // 测试此处有 socket 过期现象
            $ping = @self::$redis->mRedis->ping();
            
            // 判断连接是否断开
            if($ping != '+PONG')
            {
                self::$redis = new YMQRBACRelationRedisHelper();
            }
        }
    }
    
    /**
     * 存数据到Redis
     * 
     * @param string $key 存放的键名
     * @param mixed $value 存放的数据
     * @example YMQRBACRelationSetData::set("10180","people/info/user,people/info/isAppUser");
     */
    public static function set($key, $value)
    {
        self::_createRedis();
        // 设置值
        self::$redis->mRedis->set(strval($key), $value);
//        // 设置过期时间
//        self::$redis->mRedis->setTimeout(strval($key), YMQ_RBAC_RELATION_EXPIRED);
    }
    
    /**
     * 更新存放的数据的值
     * 
     * @param string $key 存放的键名
     * @param mixed $value 存放的新数据
     * @example YMQRBACRelationSetData::update("10180","people/info/isAppUser,people/relation/friends");
     */
    public static function update($key, $value)
    {
        // 删除指定的数据
        self::delete($key);
        // 存放新的数据
        self::set($key, $value);
//        // 设置过期时间
//        self::$redis->mRedis->setTimeout(strval($key), YMQ_RBAC_RELATION_EXPIRED);
    }
    
    /**
     * 删除指定的数据
     * 
     * @param string key 存放的键名
     * @example YMQRBACRelationSetData::delete("10180","people/info/user,people/info/isAppUser");
     */
    public static function delete($key)
    {
        self::_createRedis();
        self::$redis->mRedis->delete(strval($key));
    }
    
    /**
     * 设置key过期时间
     * 
     * @param string $key 存放的键名
     */
    public static function setTimeout($key)
    {
        self::_createRedis();
        // 设置值
        self::$redis->mRedis->set(strval($key), self::$redis->mRedis->get(strval($key)));
        // 设置过期时间
        self::$redis->mRedis->setTimeout(strval($key), YMQ_RBAC_RELATION_EXPIRED);
    }
}