选择语言 :

 Driver_Cache_Driver_Memcache::get

取得memcache数据,支持批量取

mixed Driver_Cache_Driver_Memcache::get( string/array $key )

参数列表

参数 类型 描述 默认值
$key string/array $key
返回值
  • mixed
File: ./drivers/cache/memcache/memcache.class.php
public function get($key)
{
    # 尝试连接
    $this->_connect();

    $is_array_key = is_array($key);

    # 有前缀
    if ($this->prefix)
    {
        if ($is_array_key)
        {
            $key_map = array();
            foreach ($key as &$k)
            {
                $key_map[$this->prefix . $k] = $k;
                $k = $this->prefix . $k;
            }
        }
        else
        {
            $key = $this->prefix . $key;
        }
    }

    if (Cache_Driver_Memcache::$_memcached_mode && $is_array_key)
    {
        $return = $this->_memcache->getMulti($key);
    }
    else
    {
        $return = $this->_memcache->get($key);
    }

    # 移除前缀
    if ($is_array_key && $return && $this->prefix)
    {
        $new_rs = array();
        foreach ($return as $k=>$item)
        {
            $new_rs[$key_map[$k]] = $item;
        }
        $return = $new_rs;
    }

    if (false===$return)
    {
        if(IS_DEBUG)Core::debug()->error($key, 'memcache mis key');
        return false;
    }
    else
    {
        if (IS_DEBUG)Core::debug()->info($key, 'memcache hit key');
    }

    return $return;
}