스프링부트로 Redis 값을 저장할때
나는 다음과 같은 방식을 사용하여 구현했다.
@RedisHash("logoutAccessToken")
public class LogoutAccessToken {
private String id;
private String username;
@TimeToLive
private Long expiration;
}
public interface LogoutAccessTokenRedisRepository extends CrudRepository<LogoutAccessToken, String> {
}
이렇게 되면 값을 HashMap 방식으로 저장할 수 있는데 저장이 아래와 같이 된다는것이다!!
HashMap<String,HashMap<String, String>>
그래서 값이 Set 방식으로 id가 저장되고
HasthMap 방식으로 logoutAccessToken : id
이런식으로 저장이 된다
127.0.0.1:****> keys *
1) "logoutAccessToken:eyJhbGciOiJIUzI1NiJ9.eyJ1c2VybmFtZSI6IjdkYmFiZjE0LTNhOTMtNDE4OS05MDE5LWMwOGUzNjM1YTAwNSIsImlhdCI6MTY2OTgxMzEzNiwiZXhwIjoxNjY5ODEzMTk2fQ.kfZzx2axdmSSQbEB5mjMghX4d3IlH8MeCROL3_dHDMI"
2) "logoutAccessToken"
여기서 Set 값은 시간이 만료되도 알아서 지워지지 않는다는 단점이 있다.(시간을 설정할수가 없다)
따로 id 값으로 삭제를 해줘야 지워진다.
그래서 레디스를 다른 방식으로 구현을 해볼까 한다
to be continue...
'Spring' 카테고리의 다른 글
[Spring] Springboot 프로젝트 생성 (0) | 2023.01.23 |
---|---|
스프링 시큐리티 인증/인가 처리 (0) | 2022.12.09 |
[SpringBoot] yml 파일 여러개 사용하기 (0) | 2022.12.05 |
[SpringBoot] SQS 의존성 에러 (0) | 2022.12.04 |
[Redis] redis로 token값 저장하기(2) (0) | 2022.12.01 |