讲师中心 微信公众号
AI工具推荐 视频效率加速

如何在Spring Boot中配置Spring Session Redis的会话超时

冬萱酱_8416

冬萱酱_8416

发布时间:2026-10-12 12:38:32

|

753人浏览过

|

来源于php中文网

原创

加了spring-session-data-redis后,server.servlet.session.timeout失效,因Spring Session接管会话生命周期,实际超时由@EnableRedisHttpSession的maxInactiveIntervalInSeconds控制,默认1800秒。

如何在spring boot中配置spring session redis的会话超时

会话超时配置不生效的常见原因

加了 spring-session-data-redis 依赖后,server.servlet.session.timeout 配置直接失效——这是最常被忽略的第一步。Spring Session 完全接管了会话生命周期,原生 Servlet 容器的 timeout 设置(如 Tomcat 的 session 过期逻辑)被绕过,不再参与 Redis 中 session key 的 TTL 控制。

@EnableRedisHttpSession 的 maxInactiveIntervalInSeconds 参数

真正控制 Redis 中 session 过期时间的是 @EnableRedisHttpSession 注解的 maxInactiveIntervalInSeconds 属性。它决定了 session 在 Redis 中对应的 key 的 TTL(time-to-live),也是客户端无操作后的实际失效时间。

  • 必须显式声明一个 @Configuration 类并添加该注解,否则使用默认值 1800 秒(30 分钟)
  • 如果只写 @EnableRedisHttpSession 不带参数,就等于 maxInactiveIntervalInSeconds = 1800
  • 该值不能为 0 或负数;设为 -1 会被 Spring Session 忽略,仍按默认值处理
  • 修改后需重启应用才生效,运行时无法热更新

示例:

@Configuration
@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 600) // 10 分钟
public class SessionConfig {
}

application.properties 中 spring.session.redis.* 配置项的作用边界

这些配置项对超时时间本身没有直接影响,但容易误以为能替代注解参数:

Session Monitor
Session Monitor

实时 OpenClaw 会话监控器,追踪 JSONL 记录并以持久后台进程向 Telegram 推送格式化更新。适用于在被询问时

下载
  • spring.session.redis.flush-mode:只控制 session 数据写入 Redis 的时机(on_save 或 immediate),不影响 TTL
  • spring.session.redis.namespace:仅用于拼接 Redis key 前缀(如 spring:session:sessions:{id}),和过期无关
  • spring.session.store-type=redis:只是启用 Redis 存储,不提供任何超时控制能力

换句话说,application.properties 里所有以 spring.session.redis. 开头的配置,都不改 session 的存活时长。

Redis 实际 key 的 TTL 是怎么算出来的

Spring Session 并非简单地把 maxInactiveIntervalInSeconds 当作 SETEX 的秒数——它会在每次 session 访问(读或写)时重置 key 的 TTL。这意味着:

  • 用户每刷新一次页面、发一次带 session 的请求,Redis 中对应 key 的过期时间就会被延长 maxInactiveIntervalInSeconds 秒
  • 这个行为由 RedisOperationsSessionRepository 内部的 saveDelta 和 updateExpiration 逻辑完成
  • 如果你在代码中手动调用 HttpSession.setMaxInactiveInterval(),它会被 Spring Session 忽略(除非你禁用自动配置并自己构造 Repository)

所以,超时不是“创建后固定倒计时”,而是“最后活跃时间 + 固定间隔”——这才是分布式环境下真正可靠的会话续期模型。

最容易被忽略的一点:超时逻辑完全由 Spring Session 自己维护,Redis 服务端不会主动触发 session 失效回调,也不会通知应用。清理靠的是客户端下次访问时发现 key 不存在,或后台定时任务(如 RedisOperationsSessionRepository.Cleaner)扫描过期 key ——后者默认每 30 秒执行一次,且只清理已过期但尚未被访问的 session。这个延迟是设计使然,不是 bug。

热门AI工具

更多
Loomy
Loomy Hot

一款AI工具,主要用于科大讯飞发布的桌面级 AI 助理,比 OpenClaw 更易用、更安全!,适合需要提升相关任务效率的用户。

立刻MV
立刻MV Hot

立刻MV是一款AI文本写作工具,AI 音乐视频(MV)创作工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

PixPix
PixPix Hot

PixPix是一款面向电商视觉生产的AI商品图生成工具。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

相关专题

更多
spring框架介绍
spring框架介绍

本专题整合了spring框架相关内容,想了解更多详细内容,请阅读专题下面的文章。

2451

2025.08.06

Java Spring Security 与认证授权
Java Spring Security 与认证授权

本专题系统讲解 Java Spring Security 框架在认证与授权中的应用,涵盖用户身份验证、权限控制、JWT与OAuth2实现、跨站请求伪造(CSRF)防护、会话管理与安全漏洞防范。通过实际项目案例,帮助学习者掌握如何 使用 Spring Security 实现高安全性认证与授权机制,提升 Web 应用的安全性与用户数据保护。

457

2026.01.26

session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

580

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

876

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

1886

2025.08.19

常用的数据库软件
常用的数据库软件

常用的数据库软件有MySQL、Oracle、SQL Server、PostgreSQL、MongoDB、Redis、Cassandra、Hadoop、Spark和Amazon DynamoDB。更多关于数据库软件的内容详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4409

2023.11.02

内存数据库有哪些
内存数据库有哪些

内存数据库有Redis、Memcached、Apache Ignite、VoltDB、TimesTen、H2 Database、Aerospike、Oracle TimesTen In-Memory Database、SAP HANA和ache Cassandra。更多关于内存数据库相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

3935

2023.11.14

mongodb和redis哪个读取速度快
mongodb和redis哪个读取速度快

redis 的读取速度比 mongodb 更快。原因包括:1. redis 使用简单的键值存储,而 mongodb 存储 json 格式的数据,需要解析和反序列化。2. redis 使用哈希表快速查找数据,而 mongodb 使用 b-tree 索引。因此,redis 在需要高性能读取操作的应用程序中是一个更好的选择。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

7192

2024.04.02

PixTV官网入口地址合集
PixTV官网入口地址合集

本专题汇总了 PixTV AI 一站式视频创作平台的官方入口与使用教程。无需下载软件,浏览器直接访问即可使用。平台将剧本、图像、视频、声音与剪辑整合在“无限画布”中,接入 GPT Image 2.5、Seedance 2.5 等头部模型。本专题整理了从新建画布、角色锚定、分镜拆分到视频生成与导出的完整操作指南,助你快速上手 AI 短剧与漫剧创作。

40

2026.10.10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpEnv手册
phpEnv手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn