CI框架session使用redis存储
下面是框架内session配置代码
错误日志如下:
`Session: Unable to obtain lock for ci_session:gsqko2dlahlv21s8kil87nb3q60qvfpe after 30 attempts, aborting.
Severity: Warning --> session_start(): Failed to read session data: user (path: tcp://127.0.0.1:6379) system\libraries\Session\Session.php 143 `
请各位有经验的小伙伴帮帮忙
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
https://codeigniter.com/userg...
超时。获取锁timeout 次数过多
经过各种百度谷歌查询,各种办法一一实验,最后卵用没有。没办法智能自己去查看源码了,一点一点排查。
1、既然是因为锁的问题,那就去找哪里有关于lock的代码;怎么找呢?因为我们用的是session存储redis,那么可以将范围缩小到一下这两个文件
然后开始找lock,发现只有Session_redis_driver.php中可以搜索到lock字眼,然后我们一点一点往下走,
看到了,字面意思是获取锁的意思,我们点开看看,然后断点输出,看会发生什么。
结果是喜人的,它走了,说明我们的方向没错,然后一行一行往下看,不知道就一行一行的断点输出,结果发现以下这个if写的可能有问题;
下面是我改的
然后测试,好了没问题,在redis中也可以看到数据
如果还有问题,按一下方法试一下
在CI的config下创建redis.php文件,内容为
然后可以在redis可视化后台看看会不会有session存进来