官網介紹 - spring:session:https://docs.spring.io/spring-session/docs/current/reference/html5/html
1. Mave依賴html5
<!-- springboot - Redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!--spring session 與redis應用基本環境配置,須要開啓redis後才能夠使用,否則啓動Spring boot會報錯 --> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>
2. 參數配置linux
2.1 redis 配置:web
######################## application.properties ###################################
spring.redis.database=1 spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password= # 鏈接池最大鏈接數 spring.redis.pool.max-active=8 spring.redis.pool.max-wait=-1 # 鏈接池中的最大空閒鏈接 spring.redis.pool.max-idle=8 # 鏈接池中的最小空閒鏈接 spring.redis.pool.min-idle=0 # 鏈接超時時間(毫秒) spring.redis.timeout=0
######################## 若使用yml文件,則以下配置 ###################################
spring:
redis:
database: 1 port: 6379 host: ip password: pwd database: 1 timeout: 1s
#lettuce 是一個能夠作緩衝池的插件,也能夠不用,使用pool爲三級參數,即spring.redis.pool... lettuce: pool: max-active: 8 max-idle: 8 min-idle: 0 max-wait: -1ms
2.1 若使用yml文件,則以下配置redis
spring: session: store-type: redis #redis: #flush-mode: on_save
#添加後,redis中的key爲spring:session:myproject #namespace: myproject
3. 設置Redis支持的Spring Sessionspring
3.1 方案一 基於springboot配置緩存
spring: session: store-type: redis redis: flush-mode: on_save #添加後,redis中的key爲spring:session:myproject namespace: myproject
3.2 方案二 註解方式springboot
package com.xmhx.cnlife.base.config; import org.springframework.session.data.redis.RedisFlushMode; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; /** * session託管到redis * */ //使用springboot-session處理,單位:秒;
//RedisFlushMode有兩個參數:ON_SAVE(表示在response commit前刷新緩存),IMMEDIATE(表示只要有更新,就刷新緩存) @EnableRedisHttpSession(maxInactiveIntervalInSeconds= 1800, redisFlushMode = RedisFlushMode.ON_SAVE, redisNamespace = "myproject") public class SessionConfig { }
4. 重要的異步:服務器時間同步服務器
若是看了文章開頭的原文解釋,就能夠明白,springsession會拿服務器時間 跟 redis存儲的時間比對,看時間差是否超時、失效session
若是時間不一樣步,可能有些請求就會session失效,或者本身往session中存放的需手工確認失效的功能 會偶爾出錯;好比:短信驗證碼
關於linux時間同步,請看文章:http://www.javashuo.com/article/p-zhtxxmzk-ct.html
有關想了解存放在redis裏的數據存儲結構,可查看此文:
https://blog.csdn.net/j3T9Z7H/article/details/80046307
深刻理解參考
https://blog.csdn.net/koflance/article/details/66676859?utm_source=itdadao&utm_medium=referral