取得memcache数据,支持批量取
mixed Driver_Cache_Driver_Memcache::get( string/array $key )
参数列表
参数 类型 描述 默认值 $key
string/array
$key
mixed
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;
}