是的,用session 或自定义一些IO操作来代替SQL的效率会显著得多。 有50W访问量啊? 不过还是不够具体,可能瓶颈不会出在这里吧。session机制好象,那些文件有两个属性:随机被系统删允许时间(gc time),和cache 信息有效时间。手册这样说的: session.cookie_lifetime session.cookie_lifetime specifies the lifetime of the cookie in seconds which is sent to the browser. The value 0 means "until the browser is closed." Defaults to 0 也就是说你的客户端一关闭浏览器对应的cache文件就别丢弃啦?
有10万个session文件产生时,怎样用session_save_path来存取这些分开的session啊?
------------------------------------------------------------------------------如果是我,我宁愿选择让数据库存储10万条记录,也不愿意在某个目录下建立10万个文件夹,这个应该更影响系统性能吧?如果继续增加呢?
-----------------------------------------------------------------------------
你自己分呀。只要一个文件夹里的文件少于1000个就不会太影响性能。比如你以用户id来分。floor(id/1000)为目录名。
这时候要转静态页面了吧?50万会员在线,数据库应该什么问题,专门开一个session专用数据库呗,程序也需要优化啦
别跟我说不舍得上硬件哦
------------------------------------------------
这样在session_start()以前还要计算出session在哪个文件夹,而不能直接session_start()而自动得出session的值,不太好,要是能自动得出session的值才行。2、达到50万了还用session?开玩笑
这时候要转静态页面了吧?
------------------------------------------------
网站有个在线购物,所以不管有多少人浏览网站,在列表页和购物页必须用session
session生存时间设置为1天
那么就是
session.gc_maxlifetime = 86400
问一下
session.cookie_lifetime = ?
有50W访问量啊?
不过还是不够具体,可能瓶颈不会出在这里吧。session机制好象,那些文件有两个属性:随机被系统删允许时间(gc time),和cache 信息有效时间。手册这样说的:
session.cookie_lifetime
session.cookie_lifetime specifies the lifetime of the cookie in seconds which is sent to the browser. The value 0 means "until the browser is closed." Defaults to 0
也就是说你的客户端一关闭浏览器对应的cache文件就别丢弃啦?
1、必须用session
2、不能把session放到数据库里,访问量太大,数据库压力会很大
3、/tmp 目录无法存放这么多的session文件,好象6万多个文件的时候,就报错了唉,怎么办
老大看看这个设置有什么需要注意的地方吗?楼主,这可是你说的约。我没有篡改吧?既然session.cookie_lifetime=0
那么就是说浏览器关闭后,session就失效了。设置session生存时间为1天的意义何在呢?
就是想让session临时文件多占一点空间吗?
默认是1440秒,这不符合要求,所以我要让它存活一天
2、另装一台服务器,装session专用数据库
3、设高gc概率或者session文件分层实在不想再回楼主什么了,别人是无法手把手教你的
session.gc_maxlifetime = 1440 的含义你确实知道吗?
他的意义在于当临时文件在最后修改后的1440秒以后可以被清除
而只要你访问页面,临时文件就会更新。很难设想有人开着浏览器却什么事都不做
睡觉了吗?那留着他有何用?
$sess_path = "music"; if ($sess_path!=""){
$inipath = ini_get('session.save_path');
ini_set('session.save_path',"$inipath/$sess_path");
}