如何使用MongoDbSessionHandler存储会话在MongoDB数据库

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 3.1,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

如何使用MongoDbSessionHandler存储会话在MongoDB数据库

默认的Symfony会话ob娱乐下载存储将会话信息写入文件。一些大中型网站使用名为MongoDB的NoSQL数据库来存储会话值,而不是文件,因为数据库更容易在多web服务器环境中使用和扩展。

ob娱乐下载Symfony有一个用于NoSQL数据库会话存储的内置解决方案MongoDbSessionHandler.MongoDB是一个提供高性能、高可用性和自动扩展的开源文档数据库。本文假设您已经做到了安装和配置MongoDB服务器.要使用它,你只需要在主配置文件中更改/添加一些参数:

  • YAML
  • XML
  • PHP
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
# app / config / config.yml框架:会话:#……handler_id:session.handler.mongocookie_lifetime:2592000#可选,这里设置为30天gc_maxlifetime:2592000#可选,这里设置为30天服务:#……mongo_client:类:MongoClient如果使用用户名和密码参数:[' mongodb: / / % mongodb_username %: % mongodb_password % @ % mongodb_host %: 27017)#如果没有使用用户名和密码参数:[' mongodb: / / % mongodb_host %: 27017)session.handler.mongo:类:ob娱乐下载Symfony \组件\ HttpFoundation \会议\ \ MongoDbSessionHandler存储\处理程序参数:[' @mongo_client ',“% mongo.session.options %”

上面使用的参数应该在你的应用程序中定义,通常是在你的主参数配置中:

  • YAML
  • XML
  • PHP
1 2 3 4 5 6 7 8 9
# app / config / parameters.yml参数:#……mongo.session.options:数据库:session_db#您的MongoDB数据库名称集合:会话#您的MongoDB集合名称mongodb_host:1.2.3.4#您的MongoDB服务器的IPmongodb_username:my_usernamemongodb_password:my_password

建立MongoDB集合

因为MongoDB使用动态集合模式,所以您不需要做任何事情来初始化会话集合。但是,您可能希望添加索引来提高垃圾收集性能。从MongoDB shell

1 2
使用session_db数据库。ensureIndex ({“expires_at”1},{expireAfterSeconds0})
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。