session优化

post by rocdk890 / 2013-9-23 9:31 Monday 其他技术
优化方法一:设置分级目录进行 SESSION 文件的保存
一个高访问量的网站,会生成多个session临时文件,如果这些文件只保存在一级目录里面当我们获取session值时就会导致IO性能下降,从而影响cpu等一系列问题。这时可以设置分级目录进行 SESSION 文件的保存,设置方法为:session.save_path="N;/save_path",N 为分级的级数,save_path 为开始目录。当写入 SESSION 数据的时候,PHP 会获取到客户端的 SESSION_ID,然后根据这个 SESSION ID 到指定的 SESSION 文件保存目录中找到相应的 SESSION 文件,不存在则创建之,最后将数据序列化之后写入文件。这种方法可以使文件分散保存,根据算法快速定位数据文件,大大提高了效率。
优化方法二:缓存存储法
使用缓存存储session 在读写速度上会比 files 时快很多,而且在多个服务器需要共用 session 时会比较方便,将这些服务器都配置成使用同一组 memcached 服务器就可以,减少了额外的工作量。缺点是 session 数据都保存在 memory 中,持久化方面有所欠缺
设置方法:
  首先,安装一个memcached或者memcache(这里使用memcached);
  其次,配置php.ini
         session.save_handler = memcache;
         session.save_path = "tcp://127.0.0.1:58002";
         使用多个 memcached server 时用逗号","隔开
  再次,启动memcached服务,重启apache
  最后,使用下面测试用例检验是否成功
          <?php
            session_start();
            if (!isset($_SESSION['TEST'])) {
              $_SESSION['TEST'] = time();
            }
            $_SESSION['TEST3'] = time();
            $session_id = session_id();
            print session_id();
         ?>

  用 sessionid 去 memcached 里查询一下:
  <?php
     $memcache = memcache_connect('localhost', 11211);
     var_dump($memcache->get($session_id));
  ?>

 如果打印出时间戳,则反映 session 正常工作.
ps:http://blog.sina.com.cn/s/blog_6159ac4b01017ksf.html
夜空- 本站版权
1、本站所有主题由该文章作者发表,该文章作者与夜空享有文章相关版权
2、其他单位或个人使用、转载或引用本文时必须同时征得该文章作者和夜空的同意
3、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
5、原文链接:blog.slogra.com/post-450.html

标签: php 优化 SESSION 高效

评论: