1. 程式人生 > >Spring Boot 整合Spring Session 通過Redis實現分散式共享Session

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(); 
}