用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2065|回复: 2
收起左侧

[已解决] CI生成的过期的session文件如果处理的?

[复制链接]
发表于 2016-11-25 12:57:57 | 显示全部楼层 |阅读模式
本来是用其他存储驱动的,但是系统小,官方建议用files
如图,CI生成的session文件为何不能自动删除?



文档中 sess_regenerate_destroy配置 不起作用吗?

sess_regenerate_destroyFALSETRUE/FALSE (boolean)当自动重新生成 session ID 时,是否销毁老的 session ID 对应的数据如果设置为 FALSE ,数据之后将自动被垃圾回收器删除



还是自己需要些程序处理这些过期文件?

希望大家来交流下,你们都是怎么处理这个的?
发表于 2016-11-25 18:04:45 | 显示全部楼层
CI 3 的 Session 是 PHP 原生 Session,所以 Session 的回收是 PHP 来处理的,具体可以参考 PHP 文档。
发表于 2017-10-25 16:59:32 | 显示全部楼层
默认情况下,每一次php请求,就会有1/100的概率发生回收,所以可能简单的理解为“每100次php请求就有一次回收发生”。这个概率是通过以下参数控制的
?
1
2
3
       
#概率是gc_probability/gc_divisor
session.gc_probability = 1
session.gc_divisor = 100

假设这种情况gc_maxlifetime=120,如果某个session文件最后修改时间是120秒之前,那么在下一次回收(1/100的概率)发生前,这个session仍然是有效的。

如果你的session使用session.save_path中使用别的地方保存session,session回收机制有可能不会自动处理过期session文件。这时需要定时手动(或者crontab)的删除过期的session

本版积分规则