반응형
@DisplayName("Hash 타입 테스트")
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
public class HashTypeTest {
@Autowired
RedisTemplate<String, HashClass> redisTemplate;
HashOperations<String, String, HashClass> hashOperations;
@BeforeEach
void setUp() {
hashOperations = redisTemplate.opsForHash();
redisTemplate.getConnectionFactory().getConnection().serverCommands().flushAll(); // 매 테스트 시 초기화
}
@DisplayName("HSET, HGET, HMGET, HGETALL : 해시 아이템 다루기")
@Test
void test_hset_hget() {
// given
HashClass hashClass = new HashClass("key01", "value01", 1004, 600L);
// when
hashOperations.put("a", "key01", hashClass);
HashClass findHashClass = hashOperations.get("a", "key01"); // HMGET or HGETALL
// then
assertThat(findHashClass.getId()).isEqualTo("key01");
assertThat(findHashClass.getValue()).isEqualTo("value01");
assertThat(findHashClass.getNumber()).isEqualTo(1004L);
}
@DisplayName("HEXISTS : 존재 여부 테스트")
@Test
void test_hexists() {
// given
HashClass hashClass = new HashClass("key01", "value01", 1004, 600L);
hashOperations.put("a", "key01", hashClass);
// when
Boolean hasKey = hashOperations.hasKey("a", "key01");
Boolean hasNotKey = hashOperations.hasKey("a", "key02");
// then
assertThat(hasKey).isTrue();
assertThat(hasNotKey).isFalse();
}
}
생각보다 메서드가 몇 없다.
@RedisHash 라는 어노테이션으로 특정 클래스를 해시의 벨류로 지정해서, 특정 키의 특정 값만을 하나만 가져오는 HGET은 없고, HGETALL 만 있다.
그리고 HEXISTS에 해당하는 hasKey 정도?
반응형
'지식 한 조각 🍰' 카테고리의 다른 글
노션으로 작성한 이력서 이쁘게 PDF로 뽑아내기 (7) | 2024.11.14 |
---|---|
Spring Data Redis : List 타입 명령어 (2) | 2024.06.10 |
Spring Data Redis String 타입 명령어 (0) | 2024.06.09 |
Redis NX XX (0) | 2024.06.08 |
LLM (2) | 2024.06.07 |