Laravel 会话 Memcached 入坑

前言# 此文章相当于开发记录,希望能帮助遇到同样问题的同学,或在看了此篇文章后能避免犯同样的错误。

问题描述#

之前项目开发时,SESSION_DRIVER 使用的是 redis,后来为了分离逻辑,将其修改成 memcached

这时问题来了,配置修改后,用户无法正常登陆,表现为登陆成功后一刷新页面,又显示为 未登录 状态。

定位问题#

针对此问题,当时专门做了几个排查步骤:

  • 检查 memcached 服务是否启动;
  • 检查 memcached 是否能正常存储数据;
  • 检查 memcached 有无被其他设置覆盖;

结果上面的步骤均正常。这时突然想到会不会是 过期时间 设置有问题?

打开 config/session.php 文件一看果然如此:

file

之前开发的小伙伴为了能长久保持 Sessionlifetime 值设置为了 525600 (即 1 年),而 memcached 默认的过期时间则 不能大于 30 天!

最终将 lifetime 的值修改为默认值 43200(1440 * 30)

Over

    原文作者:Coding_ff
    原文地址: https://www.jianshu.com/p/d70d5dc02969
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞