php中的session性能问题

PHPz
发布: 2016-06-13 10:29:05
转载
1202人浏览过

默认情况下开启PHP会话,会在服务器端创建一个sess_PHPSESSID文件,返回一个名为PHPSESSID的cookie给浏览器.PHP操作$_SESSION数组添加和访问会话数据.

PHP同一个会话之间共享同一个对象实例:
object通过serialize序列化成string,然后保存到会话变量中:
$_SESSION['object'] = serialize($object);
在使用这个会话(PHPSESSID)发出的其他http请求通过反序列化获取对象:
$object = unserialize($_SESSION['object']);
当然,数组也一样可以这样存储到一个会话变量中,非常方便有木有.

PHP会话存储默认使用files,对应php.ini配置项session.save_handler=files
存储位置默认是/tmp,对应session.save_path=/tmp

如果你觉得用文件系统保存会话文件会造成磁盘I/O过大,你完全可以用Memcache/Redis来存储会话.
PECL扩展memcache和redis都提供了session处理器,用于存储PHP会话内容.
http://pecl.php.net/package/memcache
http://php.net/manual/zh/memcache.ini.php
http://pecl.php.net/package/redis

Ubuntu可以这样安装:
sudo apt-get install memcached redis-server
sudo apt-get install php5-memcache php5-redis
pear install pecl/memcache

配置php.ini,加入:
extension=memcache.so
extension=redis.so
再把
session.save_handler = files
session.save_path = "/tmp"
改为(memcache):
session.save_handler = memcache
session.save_path = "tcp://127.0.0.1:11211"
改为(redis):
session.save_handler = redis
session.save_path = "tcp://127.0.0.1:6379"

session.save_path中多台memcache/redis服务器可以用逗号隔开.

session.save_path里的URL还可以可以包含一些参数,比如memcache的persistent,weight,timeout,retry_interval.

不能说PHP的session性能很烂,而是说计算机的io效率不高!

PHP默认session是以文件形式保存在本地文件系统中,每次访问都是做io操作,并发大的时候,必然会导致session文件爆发,导致读取文件变慢。

换一种方式,将session保存到内存或者数据库,性能会提高。

php session原理就这么简单,只看你运用了。

立即学习PHP免费学习笔记(深入)”;

国微CMS企业外网方案(原PHP168  S系列)
国微CMS企业外网方案(原PHP168 S系列)

国微CMS企业方案基于“核心+系统+模块+插件”的架构体系,拓展性良好。能非常方便站长及企业搭建企业信息平台。 手机短信体系平台A、 每个售后问题回复,客户均可收到快捷通知短信。B、 每个货物发送,均有一个快捷短信息发给收货方。C、 每个客户均可按实际需求收到手机短信回复与问候。D、每个订单申请都会有一个快捷短信回复。E、每个代理商申请代理均可得到短信回复。

国微CMS企业外网方案(原PHP168  S系列) 0
查看详情 国微CMS企业外网方案(原PHP168  S系列)

至于说cookie代替session就会提高,那是没什么依据的。cookie数据量有限制,而且cookie数据量大了以后,直接消耗你的带宽流量。

现在都是把session保存到memcached中

更多相关教程请访问   php编程从入门到精通全套视频教程

相关标签:
数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载
来源:CSDN博客网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号