PHP实现多web服务器共享SESSION数据-session数据写入mysql数据库
`expiry`>='' . time();
$rs=self::$db->execute($sql); if($rs){ if($rs->EOF){ return ''''; } else {//读取到对应于 SESSION ID 的 SESSION 数据 $v = $rs->fields[0]; $rs->close(); return $v; } } return ''''; } function write($sesskey,$data){ $qkey = $sesskey; $expiry = time()+MY_SESS_TIME; $arr = array( ''sesskey'' => $qkey, ''expiry'' => $expiry, ''data'' => $data); self::$db->replace(''sess'', $arr, ''sesskey'', true); return true; } function destroy($sesskey) { $sql = ''DELETE FROM `sess` WHERE `sesskey`=''.self::$db->qstr($sesskey); $rs =self::$db->execute($sql); return true; } function gc($maxlifetime = null) { $sql = ''DELETE FROM `sess` WHERE `expiry`<''.time(); self::$db->execute($sql); //由于经常性的对表 sess 做删除操作,容易产生碎片, //所以在垃圾回收中对该表进行优化操作。 $sql = ''OPTIMIZE TABLE `sess`''; self::$db->Execute($sql); return true; } } //使用 ADOdb 作为数据库抽象层。 require_once(''adodb/adodb.inc.php''); //数据库配置项,可放入配置文件中(如:config.inc.php)。 $db_type = ''mysql''; $db_host = ''127.0.0.1''; $db_user = ''root''; $db_pass = ''111''; $db_name = ''sess_db''; //创建数据库连接。 $cnn=&ADONewConnection($db_type); $cnn->Connect($db_host,$db_user,$db_pass, $db_name); //初始化 SESSION 设置,初始化时已经包含了session_start()! $sess = new My_Sess($cnn); $sess->init();
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
print_r(
Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved 地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008 电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134 《中华人民共和国增值电信业务经营许可证》闽B2-20100024 ICP备案:闽ICP备05037997号
?> 五、遗留问题 如果网站的访问量很大的话,SESSION 的读写会频繁地对数据库进行操作,这样效率就会明显降低。考虑到 SESSION 数据一般不会很大,可以尝试用 C/Java 写个多线程的程序,用 HASH 表保存 SESSION 数据,并通过 socket 通信进行数据读写,这样 SESSION 就保存在内存中,读写速度应该会快很多。另外还可 以通过负载均衡来分担服务器负载。 最后附上根据上面的实例执行,自己分析的session执行图
|
||||||||||||||||||||
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |