当前位置: 网学 > 编程文档 > PHP > 正文

深入Memcache的Session数据的多服务器共享详解

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/06/18
)));
}

/**
* 获取一个保存在Memcache的Session Key
*
* @param string 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
sessId - 是否指定Session ID
* @return string 获取到的Session Key
*/
private function _getSessKey( 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
sessId = ''''){
$sessKey = ( 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
sessId == '''') ? $this->_sessKeyPrefix.$this->_sessId : $this->_sessKeyPrefix. 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
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数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
host => 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
port) {
$this->memObject->addServer( 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
host, 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
port);
}
}

return true;
}

/**
* 获取Session文件中的数据
*
* @param string 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
sessId - 需要获取Session数据的SessionId
* @return unknown
*/
private function _getSession( 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
sessId = ''''){
$this->_initMemcacheObj();
$sessKey = $this->_getSessKey( 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
sessId);
$sessData = $this->memObject->get($sessKey);
if (!is_array($sessData) || empty($sessData)){
//this must be 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
COOKIE[''__SessHandler''] error!
return array();
}
return $sessData;
}

/**
* 把当前的Session数据保存到Memcache
*
* @param string 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
sessId - Session ID
* @return 成功返回true
*/
private function _saveSession( 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
sessId = ''''){
$this->_initMemcacheObj();
$sessKey = $this->_getSessKey( 深入Memcache的Session数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
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数据的多服务器共享详解_网学
浏览:
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号
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功能不可用,则根据其他

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号