본문 바로가기
프로젝트 기록/Spring

[Spring / Redis] @RedisHash 어노테이션을 붙인 객체를 레디스에 저장했을때, 그 값을 확인하는 방법

by clean01 2024. 5. 18.

redis-cli에서 내가 넣은 값을 확인하는 방법

key는 @RedisHash 에 설정해놓은 value와 그 어노테이션이 붙은 클래스 중 @Id 어노테이션이 붙은 필드를 조합하여 value:Id로 설정됩니다.

즉, 아래와 같은 클래스가 있고, 객체를 만들때 Id인 accessToken 필드 값을 "hello"로 설정해놨다면

package com.mewsinsa.auth.jwt.redis.dto;


import com.mewsinsa.member.domain.Member;
import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;

@RedisHash(value = "accessToken", timeToLive = 1800) // 30m
public class RedisAccessToken {
  @Id
  private String accessToken;
  private Member member;

  //==Getter==//
  public String getAccessToken() {
    return accessToken;
  }

  public Member getMember() {
    return member;
  }

  //==Setter==//
  public void setAccessToken(String accessToken) {
    this.accessToken = accessToken;
  }

  public void setMember(Member member) {
    this.member = member;
  }
}

레디스에는 key 값이 accessToken:hello로 저장됩니다.

값을 저장한 뒤 redis-cli로 값을 조회해보겠습니다.
해당 key에 대한 모든 데이터를 조회하고 싶다면 아래와 같이 입력합니다.

HGETALL "키값"

레디스에 저장하는 객체 안에 객체가 있다면 소문자클래스명.변수명으로 저장이 됩니다.
예를 들어 Member 객체의 namemember.name이라는 필드로 저장되는 것입니다.
참고로 위 결과를 보니 값을 넣어주지 않아서 null인 필드는 아예 저장되지 않는 것 같습니다.

field에 해당하는 member의 이름을 확인해보겠습니다.
아래의 명령어로 field값을 확인할 수 있습니다.

HGET "키값" "필드명"