1. 程式人生 > >Spring Boot 2 實踐記錄之 Redis 及 Session Redis 配置

Spring Boot 2 實踐記錄之 Redis 及 Session Redis 配置

tor ssi sta ava art spring apach 時間 ati

先說 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

Spring Boot 2 實踐記錄之 Redis 及 Session Redis 配置