对于我的Symfony2项目,我在数据库中使用会话存储.
所以,我配置我的config.yml:
framework: session: handler_id: session.handler.pdo parameters: pdo.db_options: db_table: session db_id_col: session_id db_data_col: session_value db_time_col: session_time services: pdo: class: PDO arguments: - "pgsql:host=%database_host%;dbname=%database_name%" - "%database_user%" - "%database_password%" calls: - [setAttribute,[3,2]] session.handler.pdo: class: Symfony\Component\HttpFoundation\Session\Storage\Handler\PdoSessionHandler arguments: ["@pdo","%pdo.db_options%"]
一切都没关系,当我登录时,在我的数据库中创建了一个条目,会话工作正常.
但是,如何在数据库中定义会话的生命周期?如果我的应用程序中只有4个成员,为什么我的会话表中有很多行(50)?
我该如何配置?成员登录时我只需要一个会话.
您可以通过更频繁地运行会话垃圾回收器来减少会话表中的行数.
http://www.php.net/manual/en/session.configuration.php#ini.session.gc-probability
session.gc_probability合= 1
session.gc_divisor = 1
的session.gc_maxlifetime = 36000
这些设置将以100%的概率运行垃圾收集器,这不建议用于生产,但您应该能够验证它是否有效并根据需要调整设置.