先说 Redis 的配置,在一些网上资料中,Spring Boot 的 Redis 除了添加依赖外,还要使用 XML 或 Java 配置文件做些配置,不过经过实践并不需要。
先在 pom 文件中添加 redis 的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<version>xxx.xxx.xxx.RELEASE</version>
</dependency>
如果 Redis 部署在 Spring Boot 运行环境的同一台服务器上,端口为默认的 6379,且没有设置密码,那么其实 Redis 已经可用了。
当然这种假设其实在多数情况下并不成立,所以还是要在配置文件中设置一下,还可以对连接池做个设置:
spring.redis.host=xxx.xxx.xxx.xxx #Redis 服务器ip
spring.redis.port=6379 #Redis 服务器端口
spring.redis.password=xxxxxx #连接密码
spring.redis.timeout=2000 #超时时间
spring.redis.pool.max-active=8 #最大连接数
spring.redis.pool.max-wait=-1 #连接超时设置
spring.redis.pool.max-idle=8 #最大空闲数
spring.redis.pool.min-idle=0 #最小空闲数
再说 Session,如果直接使用 session,是调用的 org.apache.catalina.session.StandardSessionFacade 做 Session 管理。
要想将 Session 存储在 Redis 中,也很简单,只需要在 pom 中添加 spring-session-data-redis 依赖:
<dependency>
<groupId>org.springframework.session</groupId>
<artifactId>spring-session-data-redis</artifactId>
<version>2.1.3.RELEASE</version>
</dependency>
不需要在配置文件中添加如下配置(网上多数文章都提到了这个配置):
spring.session.store-type=Redis
也不需要在 Java 配置文件中做如下配置:
import org.springframework.context.annotation.Configuration;
import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; @Configuration
@EnableRedisHttpSession
public class SessionConfiguration {
}
倒是可以在加入了 spring-session-data-redis 依赖后,又在某些情况下(比如本地测试时),不想将 Session 存入 Redis,可以通过在配置文件中加入如下配置项来实现屏蔽:
spring.session.store-type=None