You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 10+Sanctum SPA认证场景下Redis会话内存占用过高问题求助

Laravel 10+Sanctum SPA认证场景下Redis会话内存占用过高问题求助

各位大佬好,我最近碰到一个非常棘手的问题,想请教下大家的思路:

我维护着一个基于Laravel 10的项目,用的是Sanctum的SPA认证方案,会话存储用的是Redis。结果突然出现服务器内存直接拉满到100%的情况,排查后发现是Redis里的会话条目暴增导致的。

排查过程和发现

  1. 打开Chrome开发者工具的Network标签观察,发现每次请求后session的值都会发生变化,但我在项目代码里从来没调用过session()->regenerate(),也没有任何手动操作会话的逻辑。
  2. 我试着在本地修复了项目storage目录的文件/文件夹权限,当时看起来好像有效——Devtools里显示的session cookie值不再变化了,一直保持同一个。
  3. 但为了彻底确认,我用redis-cli做了验证:
    • 先执行FLUSHDB清空Redis里的旧数据
    • 给项目发送了几个请求
    • 再执行KEYS *查看Redis中的键值
      结果发现Redis里生成了大量会话条目,几乎每个请求对应一条,这说明前端显示的cookie值没变,但后端其实一直在生成新会话,内存占用的问题根本没解决。

我的中间件配置

贴一下app\Http\Kernel.php里的全局中间件配置:

protected $middleware = [
    StartSession::class,
    TrustProxies::class,
    PreventRequestsDuringMaintenance::class,
    ValidatePostSize::class,
    TrimStrings::class,
    ConvertEmptyStringsToNull::class,
];

核心问题总结

简单来说:Laravel会在每次请求时生成新会话,哪怕前端Devtools显示的session cookie值保持不变,这导致Redis里的会话数量急剧增加,直接把服务器内存占满了。

有没有大佬碰到过类似的问题?麻烦给点排查方向或者解决方案,万分感谢!

备注:内容来源于stack exchange,提问作者jacob_frankovic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 11:54:35