Spring Boot 集成Spring Session 通过Redis实现分布式共享Session

一、首先我们要引入依赖,修改pom.xml添加:

//引入spring session
<dependency>
    <groupId>org.springframework.session</groupId>
    <artifactId>spring-session-data-redis</artifactId>
</dependency>
//引入redis
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
二、修改application.properties或者yml文件:
spring.redis.port=6379
spring.redis.host=127.0.0.1
spring.redis.password=密码没可以不填
spring.redis.pool.max-active=100
spring.redis.pool.max-idle=5
spring.redis.pool.max-wait=60000

三、启用redis管理Session 

//第一种方式:修改application.properties,添加
spring.session.store-type=redis
//第二种方式:启用注解
@EnableRedisHttpSession

四、进行一些简单的设置(两种配置方式)

  1.修改命名空间:@EnableRedisHttpSession(redisNamespace="")

                                    spring.session.redis.namespace=your_namesapce(自己起个名字)

        2.修改过期时间:@EnableRedisHttpSession(maxInactiveIntervalInSeconds=2000) 单位是秒

                                    server.servlet.session.cookie.max-age=1800s

五、分布式程序通过HttpSession获取/设置session,只要是程序配置在同一个redis,都可以共享

      经测试SESSIONID的路径默认就是"/",只要域名相同全路径携带

@RequestMapping(“uid”) 
String uid(HttpSession session) { 
    UUID uid = (UUID) session.getAttribute(“uid”); 
    if (uid == null) { 
       uid = UUID.randomUUID(); 
    } 
    session.setAttribute(“uid”, uid); 
    return session.getId(); 
} 

猜你喜欢

转载自blog.csdn.net/shanchahua123456/article/details/85108763