将Symfony2会话存储在Redis中

3
我希望将用户会话存储在Redis中,以便在Symfony2和node.js中使用。
Symfony2支持MySQL和PostgreSQL作为会话存储,但我想使用Redis。
我找到了这个新的拉取请求,其中已经实现了一个RedisSessionHandlerhttps://github.com/Baachi/symfony/blob/redis-session-storage/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/RedisSessionHandler.php 我只是没有找到关于其是否安全的任何信息。是否有人有相关信息或者已经提供了其他解决方法(例如Bundle)?
1个回答

2

或者已经有其他修复方法(可能是一组)可用吗?

链接的RedisSessionHandler需要phpredis扩展,可以在php.ini中配置它作为会话处理程序(会话将使用键$key = 'PHPREDIS_SESSION:'.$hash;存储)。


在页面之间保存和检索会话值是否有效? - dev-null-dweller
我现在重新启动了计算机并按照您的方法进行操作。检索会话属性正常工作,我也找不到与浏览器中的sessionid类似的缓存文件。是不是redis在cli中隐藏了会话?即使在重新启动后,手动设置键和值也可以使用redis。 - dev.pus
1
不,redis-cli并不隐藏任何键。如果您正在使用Symfony,请检查是否已注册其任何会话处理程序?您可以检查phpinfo以查看redis是否设置为会话处理程序,并运行简单的脚本<?php session_start(); exit; ?>以查看redis-cli中是否有任何新键? - dev-null-dweller
phpinfo=> 已注册的保存处理程序:文件用户redis。我执行了你的会话测试脚本,它有效。你是对的,Symfony似乎忽略了php.ini会话处理程序并使用自己的处理程序。因此,你也正确地注册了他们的redis会话处理程序。我找到了Symfony配置参考,其中包含这些会话选项(http://symfony.com/doc/master/reference/configuration/framework.html),在session_handler_id下,我可以定义自己的会话服务(至少我认为是这样)。如何做到这一点在文档的其他地方有解释。 - dev.pus
是的,但由于某些原因,他们从存储库中删除了Redis实现(过去已经有三个请求被删除),并且因为Redis不再可用(有一个新的pr在那里...),所以它会回退到其他方法 :) - dev.pus
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接