会话中的垃圾收集将发生在PHP中与数据库管理会话时?

shi*_*hin 0 php session garbage-collection

在会话中管理数据库的情况下,如何或何时进行会话垃圾收集?我用数据库完成了会话管理.但它不会删除完成到期时间的用户详细信息.

sym*_*ean 5

它不会删除完成到期时间的用户详细信息.

人们似乎总是对此感到困惑.

每当调用session_start()时,都会根据掷骰子触发垃圾收集.因此,如果所有客户突然停止同时访问您的Web服务器,垃圾收集将永远不会启动,会话数据将无限期地持续存在.

但是,如果先前在TTL过期之前访问过会话,则会话处理程序负责仅返回会话数据.因此,每次保存会话时,即使数据未更改,处理程序也必须更新会话数据文件/记录上的时间戳.

如果在TTL过期后处理程序返回会话数据,则会话处理程序中存在错误.

但是,您只是在会话到期后声明数据存在 - 这是完全正常的.

OTOH如果您只是想减少存储大量过期会话的开销,那么您可以通过增加gc_probability或减少gc_divisor来更频繁地强制垃圾收集.但是,您将更多的处理工作推入请求处理程序.

C.