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共享。

 

参考

http://emacoo.cn/backend/spring-redis/

https://segmentfault.com/a/1190000004358410

posted on 2018-12-04 09:28  豫华商  阅读(120)  评论(0编辑  收藏  举报