官网介绍 - spring:session:https://docs.spring.io/spring-session/docs/current/reference/html5/

 

1. Mave依赖

复制代码
        <!-- 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. 参数配置

  2.1 redis 配置:

复制代码
########################  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文件,则如下配置

  

复制代码
spring:
  session:
    store-type: redis
    #redis:
      #flush-mode: on_save
#添加后,redis中的key为spring:session:myproject #namespace: myproject
复制代码

 

3. 设置Redis支持的Spring Session

3.1 方案一  基于springboot配置

复制代码
spring:
  session:
    store-type: redis
    redis:
      flush-mode: on_save
      #添加后,redis中的key为spring:session:myproject
      namespace: myproject
复制代码

 

3.2 方案二 注解方式

复制代码
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 { }