)));
}
/**
* 获取一个保存在Memcache的Session Key
*
* @param string
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId - 是否指定Session ID
* @return string 获取到的Session Key
*/
private function _getSessKey(
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId = ''''){
$sessKey = (
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId == '''') ? $this->_sessKeyPrefix.$this->_sessId : $this->_sessKeyPrefix.
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId;
return $sessKey;
}
/**
* 检查保存Session数据的路径是否存在
*
* @return bool 成功返回true
*/
private function _initMemcacheObj(){
if (!class_exists(''Memcache'') || !function_exists(''memcache_connect'')){
$this->_showMessage(''Failed: Memcache extension not install, please from http://pecl.php.net download and install'');
}
if ($this->memObject && is_object($this->memObject)){
return true;
}
$this->memObject = new Memcache;
if (!empty($this->_memServers)) {
foreach ($this->_memServers as
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
host =>
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
port) {
$this->memObject->addServer(
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
host,
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
port);
}
}
return true;
}
/**
* 获取Session文件中的数据
*
* @param string
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId - 需要获取Session数据的SessionId
* @return unknown
*/
private function _getSession(
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId = ''''){
$this->_initMemcacheObj();
$sessKey = $this->_getSessKey(
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId);
$sessData = $this->memObject->get($sessKey);
if (!is_array($sessData) || empty($sessData)){
//this must be
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
COOKIE[''__SessHandler''] error!
return array();
}
return $sessData;
}
/**
* 把当前的Session数据保存到Memcache
*
* @param string
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId - Session ID
* @return 成功返回true
*/
private function _saveSession(
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId = ''''){
$this->_initMemcacheObj();
$sessKey = $this->_getSessKey(
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
sessId);
if (empty($this->_sessContainer)){
$ret = @$this->memObject->set($sessKey, $this->_sessContainer, false, $this->_sessExpireTime);
}else{
$ret = @$this->memObject->replace($sessKey, $this->_sessContainer, false, $this->_sessExpireTime);
}
if (!$ret){
$this->_showMessage(''Failed: Save sessiont data failed, please check memcache server'');
}
return true;
}
/**
* 显示提示信息
*
* @param string $strMessage - 需要显示的信息内容
* @param bool $isFailed - 是否是失败信息, 缺省是true
*/
private function _showMessage($strMessage, $isFailed = true){
return;
if ($isFailed){
echo ($strMessage);
}
echo $strMessage;
}
四应用
1.本地session存储,与原始session操作方式一样,没有任何改变。如:
复制代码 代码如下:
session_start();
深入Memcache的Session数据的多服务器共享详解_网学
深入Memcache的Session数据的多服务器共享详解
浏览:
SESSION[''file_session_info'']= ''本地文件保存的session信息''; //本地文件保存的session
2.memcache共享服务器的session存储
复制代码 代码如下:
$mem= MemcacheSession::getInstance(''192.168.0.4'', 11211);
$mem->addMemServer(''192.168.0.4'',11211);
$mem->addMemServer(''192.168.0.5'',11211);
//如果cookie功能不可用,则根据其他