Skip to main content

SpringBoot2.2、gradleでセッションをredisで管理する

· 2 min read

SpringSecurityでの認証を実装していることを前提とする。

redisを導入しておく​

dockerでredisを入れる

docker-compose.yml

version: "3.3"
services:
redis:
image: "redis:latest"
ports:
- "6379:6379"
volumes:
- "./data/reis:/data"

redisを起動する

docker-compose up

これでlocalhost:6379でredisにアクセス可能

springbootにredis導入​

springbootのセッションでredisを使うには、

  • spring-boot-starter-data-redis
  • spring-session-data-redis

を入れる必要があるらしい。

MVNRepositoryで検索してみる

[https://mvnrepository.com/search?q=spring-boot-starter-data-redis] [https://mvnrepository.com/search?q=Spring+Session+Data+Redis+]

build.gradleに以下記述

dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-redis:2.2.6.RELEASE'
implementation 'org.springframework.session:spring-session-data-redis:2.2.2.RELEASE'
}

application.ymlに認証情報等記述

spring:
redis:
host: localhost
port: 6379
database: 0
password: null

これで自分のアプリーケーションにログインすると、セッション情報がredisに書き込まれているのがわかる。 アプリケーションを再起動しても、redisにセッションが書き込まれているためログイン状態が保持される。

redisに入ってみてみる​

$ redis-cli
127.0.0.1:6379> select 0
OK
127.0.0.1:6379> keys *

これでセッションが確認できる。