我为什么不使用session


在考虑session的问题上,我最终放弃了session:
  1、原本的session是使用文件来管理的。文件系统的好坏直接影响session的性能,尤其当有几K人同时在线的时候,尤其突出。解决方法有两个:数据库和文件(使用哈希路径)。
  2、原有session的扩展性和可控制性不好。不利于结合我现有的系统。
  3、在选用数据库的时候,我并没有选择sqlite,上次我测试sqlite效率在win xp上效率没有想象中的好。

  最后我选择了myql的heap表来处理session,并且把session处理和online在线用户统计结合起来。

  下面给出代码为我的一个实例(没提供其他的细节了,具体使用要相应修改)

 

<?
/**
  * 处理在线用户和对session的模拟
  * CREATE TABLE `webqq_session` (

`sid` char( 32 ) NOT NULL ,
`uid` mediumint( 8 ) NOT NULL ,
`username` char( 80 ) NOT NULL ,
`ismember` tinyint( 1 ) NOT NULL ,
`logintime` int( 10 ) NOT NULL ,
`activetime` int( 10 ) NOT NULL ,
PRIMARY KEY ( `sid` ) 
) ENGINE = HEAP DEFAULT CHARSET = gb2312 
  * @author:feifengxlq<http://www.phpobject.net> feifengxlq#gmail.com
  * @since:2006-10-23
  * @copyright:http://www.phpobject.net
  * 注意:这个文件的使用必须和其他文件结合:比如对cookid的过滤,一些基本函数和数据库操作类
*/
class session
{
    var $mysql;
    
    var $cookie_id='webqq_sid';
    
    var $session=array();
    
    var $max_time=1200;//默认最大时间为20分钟
    
    function __construct()
    {
        $this->mysql=new module(TB_PREX.'_session');//需要外部支持
        $this->start();
    }
    
    function start()
    {
        if(empty( 我为什么不使用session - 站长学院

我为什么不使用session

2008-7-6 19:44:00查看学习心得
{GetProperty(Content)} 本文作者:
« 
» 

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3