session文件产生太多,怎么办?

todayisbest 2005-12-27 04:06:03
有页面中有个session_start(),session生存时间设置为1天,这个页面每天访问会产生上万的session文件,一个/tmp文件夹存放如此多的session文件,速度肯定有影响,请问sesion如何能放到若干个文件夹中?
比如把上万个session文件,存放到1K个文件夹中,那么就可以解决单个文件夹中session太多的问题
...全文
795 40 打赏 收藏 转发到动态 举报
写回复
用AI写文章
40 条回复
切换为时间正序
请发表友善的回复…
发表回复
castor88 2005-12-29
  • 打赏
  • 举报
回复
建议能不用session的地方不用,以get方式通过url传递状态
todayisbest 2005-12-29
  • 打赏
  • 举报
回复
天涯社区是怎么做的?那么多人在线啊
todayisbest 2005-12-29
  • 打赏
  • 举报
回复
网站访问量日超过10万,大家都是怎样做的啊?
canyun3160 2005-12-28
  • 打赏
  • 举报
回复
为了祖国的软件事业而奋斗!!!
[软件开发联盟]QQ群:18925780
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
session_cookie_lefttime=0,只能表示浏览器一关,该session就没用了,但是要删除该session文件却是要一天的过后(这个是自己设定的,必须有效期为1天)
lostgdi731 2005-12-28
  • 打赏
  • 举报
回复
是的,用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文件就别丢弃啦?
soktest 2005-12-28
  • 打赏
  • 举报
回复
请问session文件一般是放在那个地方呢?
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
session.cookie_lifetime=0

老大看看这个设置有什么需要注意的地方吗?
xuzuning 2005-12-28
  • 打赏
  • 举报
回复
先钻个空子
session生存时间设置为1天
那么就是
session.gc_maxlifetime = 86400
问一下
session.cookie_lifetime = ?

todayisbest 2005-12-28
  • 打赏
  • 举报
回复
涉及到用户账号密码和相关私人信息,决定采用session来做
ashchen 2005-12-28
  • 打赏
  • 举报
回复
不是有cookie吗?
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
1、你自己分呀。只要一个文件夹里的文件少于1000个就不会太影响性能。比如你以用户id来分。floor(id/1000)为目录名。
------------------------------------------------
这样在session_start()以前还要计算出session在哪个文件夹,而不能直接session_start()而自动得出session的值,不太好,要是能自动得出session的值才行。

2、达到50万了还用session?开玩笑
这时候要转静态页面了吧?
------------------------------------------------
网站有个在线购物,所以不管有多少人浏览网站,在列表页和购物页必须用session
valley74 2005-12-28
  • 打赏
  • 举报
回复
可以的,我是不同网站用不同文件夹寸session
$sess_path = "music";

if ($sess_path!=""){
$inipath = ini_get('session.save_path');
ini_set('session.save_path',"$inipath/$sess_path");
}
ashchen 2005-12-28
  • 打赏
  • 举报
回复
"10万个是按少的计算了,实际可能50多万"

达到50万了还用session?开玩笑
这时候要转静态页面了吧?

50万会员在线,数据库应该什么问题,专门开一个session专用数据库呗,程序也需要优化啦
别跟我说不舍得上硬件哦
Gdj 2005-12-28
  • 打赏
  • 举报
回复
有10万个session文件产生时,怎样用session_save_path来存取这些分开的session啊?
-----------------------------------------------------------------------------
你自己分呀。只要一个文件夹里的文件少于1000个就不会太影响性能。比如你以用户id来分。floor(id/1000)为目录名。
canyun3160 2005-12-28
  • 打赏
  • 举报
回复
为了祖国的软件事业而奋斗!!!
[软件开发联盟]QQ群:18925780
国家兴亡,匹夫有责!!!
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
up
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
几百是按多的说了,可能会有几十个同时在写文章
todayisbest 2005-12-28
  • 打赏
  • 举报
回复
我比较极端,看来你更极端。每天有十万人在你那里写文章!
-------------------------------------------------------
没有十万,可能有几百吧
lostgdi731 2005-12-28
  • 打赏
  • 举报
回复
可以学一下163写邮件的功能啊,他靠的是客户端定期发送 alive 包,避免超时,不过这个方法已经不是session了。
加载更多回复(20)

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧