开发者社区> 问答> 正文

请教各位php的过期的session文件是怎么回收的?

我们都知道php有自己的一个默认session机制,就是你不设置任何session.handler的时候,它会用在临时目录下面存储文件名类似sess_5pjm50b8d40p4175iousv4hqd3的一堆session文件,但是session是有过期时间的,而这些文件显然不能无限增多,那么当session过期以后这些文件会被回收吗?是通过什么机制回收的呢?显然php本身干不了这个事情,因为它的生命周期在脚本执行完就结束了,没有长驻内存的程序来回收这些文件,难道就放任不管吗?

展开
收起
落地花开啦 2016-06-12 16:58:00 2351 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人
    session.gcprobability = 1
    session.gcdivisor = 100
    session.gc_maxlifetime = 1440

    这三个配置组合构建服务端session的垃圾回收机制

    session.gc_probability与session.gc_divisor构成执行session清理的概率,理论上的解释为服务端定期有一定的概率调用gc函数来对session进行清理,清理的概率为:
    gc_probability/gc_divisor 比如:1/100 表示每一个新会话初始化时,有1%的概率会启动垃圾回收程序,清理的标准为session.gc_maxlifetime定义的时间。

    2019-07-17 19:34:36
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载