Spring Session官方说明
Spring Session provides an API and implementations for managing a user's session information.
如何使用
1. 引入依赖
<dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>
2. Session配置
@Configuration @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 86400*30) public class SessionConfig { }
--maxInactiveIntervalInSeconds:设置Session失效时间,使用Redis Session之后,原Boot的server.session.timeout属性不再生效。
好了,这样就配置好了,我们来测试一下
3. 测试
添加测试方法获取sessionid
@RequestMapping("/uid") public String uid(HttpSession session) { UUID uid = (UUID) session.getAttribute("uid"); if (uid == null) { uid = UUID.randomUUID(); } session.setAttribute("uid", uid); return session.getId(); }
登录redis输入 keys '*sessions*'
t<spring:session:sessions:db031986-8ecc-48d6-b471-b137a3ed6bc4
t(spring:session:expirations:1472976480000
其中 1472976480000为失效时间,意思是这个时间后session失效,db031986-8ecc-48d6-b471-b137a3ed6bc4
为sessionId,登录http://localhost:8080/uid 发现会一致,就说明session 已经在redis里面进行有效的管理了。
如何在两台或者多台服务器中利用redis共享session
其实就是按照上面的步骤在另一个项目中再次配置一次,启动后自动就进行了session共享。