想给model写个数据缓存...放弃了

前台逻辑中有部分object,也有array,而数据库出来的全是object,redis将数组全部存为array,取出array,结果集为了保留原先的输出,很多地方需要转来转去,函数操作性能反而降低了,放弃,先放这儿备忘。 之前一直想用静态数组存的,可是不知道为什么总是更新,而获取一直是空的...静态变量不是存在三界之外吗?回头研究研究

private function dbSetCache($key, $value)
{
    $type = gettype($value);
    if($type == 'array' && isset($value[0])) $type = is_object($value[0]) ? 'object' : 'array';
    if(strpos($key, 'getList') === 0) $type = 'page';
    $this->redis->{'DBCache:' . $this->table . ':' . $key} = ['type' => $type, 'val' => $value];
}

private function dbGetCache($key)
{
    $result = $this->redis->{'DBCache:' . $this->table . ':' . $key};
    $data   = false;
    if($result)
    {
        switch($result['type'])
        {
            case 'object':
                $data = arrayToObject($result['val']);
                break;
            case 'page':
                $data = $result['val'];
                $data['data'] = arrayToObject($data['data']);
                break;
            default:
                $data = $result['val'];
                break;
        }
    }
    return $data;
}

private function dbDelCache($key = '')
{
    if(empty($key))
    {
        $keys = $this->redis->keys('DBCache:' . $this->table . ':*');
        if(is_arr($keys))foreach($keys as $key)
        {
            //处理redis缓存命名空间
            $key = explode(':', $key);
            unset($key[0]);
            $this->redis->delete(join(':', $key));
        }
        return true;
    }
    return $this->redis->delete($key);
}