반응형
해당 글에서는 Spring Data Redis에 포함된 ValueOperations Class API Document에 대해 확인합니다.
💡 [참고] Redis 관련해서 구성 내용에 대해 궁금하시면 아래의 글을 참고하시면 도움이 됩니다.
분류 | 링크 |
Redis(Remote Dictionary Server) 이해하기 -1 : 구조 및 특징, 아키텍처 | https://adjh54.tistory.com/447 |
Redis(Remote Dictionary Server) 이해하기 -2 : MacOS 로컬 환경 구성 및 명령어 | https://adjh54.tistory.com/448 |
RedisTemplate API Document | https://adjh54.tistory.com/462 |
ValueOperations API Document | https://adjh54.tistory.com/460 |
HashOperations API Documnet | https://adjh54.tistory.com/461 |
1) ValueOperations
💡 ValueOperations
- Spring Data Redis에서 제공하는 인터페이스로서, Redis의 ‘문자열 데이터 타입’에 대한 연산을 지원합니다.
- 이를 사용하여 Redis에서 제공하는 문자열 데이터 타입의 주요 기능, 예를 들어 값 설정, 값 가져오기, 값 추가 및 값 증가 등의 연산을 수행할 수 있습니다.
- ValueOperations는 특정 키에 대한 값을 처리할 때 사용할 수 있는 메서드를 제공합니다. 이 메서드들은 모두 Thread-safe 하므로 여러 스레드에서 동시에 안전하게 사용할 수 있습니다.
💡 ValueOperations 클래스는 org.springframework.data.redis.core 패키지내에 포함되어 있습니다.
💡 Redis의 데이터 타입 중 ‘String’에 대한 연산을 지원합니다.
2) ValueOperations Class Method
💡 ValueOperations Class Method
- 해당 API 문서는 Spring Data Redis 3.2.4 버전으로 구성하였습니다.
메서드 | 리턴 타입 | 분류 | 설명 |
get(Object key) | V | 값 조회 | 'key'의 값을 가져옵니다. |
get(K key, long start, long end) | String | 값 조회 | 'key'의 값 사이에서 'begin'과 'end' 사이의 부분문자열을 가져옵니다. |
multiGet(Collection<K> keys) | List<V> | 값 조회 | 여러 'keys'를 가져옵니다. |
getAndPersist(K key) | V | 값 조회 | 'key'의 값을 반환하고 키를 유지합니다 |
getBit(K key, long offset) | Boolean | 값 조회 | 'key'의 'offset'에서 비트 값을 가져옵니다. |
getAndDelete(K key) | V | 값 조회/삭제 | 'key'의 값을 반환하고 키를 삭제합니다. |
getAndExpire(K key, long timeout, TimeUnit unit) | V | 값 조회/삭제 | 'key'의 값을 반환하고 'timeout'을 적용하여 키를 만료합니다. |
getAndExpire(K key, Duration timeout) | V | 값 조회/삭제 | 'key'의 값을 반환하고 'timeout'을 적용하여 키를 만료합니다. |
getAndSet(K key, V value) | V | 값 지정/조회 | 'key'의 'value'를 설정하고 이전 값을 반환합니다 |
bitField(K key, BitFieldSubCommands subCommands) | List<Long> | 값 조작 | 주어진 'key'에 저장된 임의의 비트 폭과 임의의 비정렬 오프셋의 특정 정수 필드를 가져오거나 조작합니다 |
decrement(K key) | Long | 값 조작 | 'key' 아래에 문자열 값으로 저장된 정수 값을 1 감소 시킵니다. |
decrement(K key, long delta) | Long | 값 조작 | 'key' 아래에 문자열 값으로 저장된 정수 값을 'delta'만큼 감소 시킵니다. |
increment(K key) | Long | 값 조작 | 'key' 아래에 문자열 값으로 저장된 정수 값을 1 증가 시킵니다. |
increment(K key, double delta) | Double | 값 조작 | 'key' 아래에 문자열 값으로 저장된 부동 소수점 숫자 값을 'delta'만큼 증가 시킵니다. |
increment(K key, long delta) | Long | 값 조작 | 'key' 아래에 문자열 값으로 저장된 정수 값을 'delta'만큼 증가 시킵니다. |
multiSet(Map<? extends K,? extends V> map) | void | 값 지정 | 주어진 'tuple'에서 제공하는 키-값 쌍을 사용하여 여러 키를 여러 값으로 설정합니다. |
multiSetIfAbsent(Map<? extends K,? extends V> map) | Boolean | 값 지정 | 제공된 키가 존재하지 않는 경우 'tuple'에서 제공하는 키-값 쌍을 사용하여 여러 키를 여러 값으로 설정합니다. |
append(K key, String value) | Integer | 값 지정 | 'key'에 'value'를 추가합니다. |
set(K key, V value) | void | 값 지정 | 'key'의 'value'를 설정합니다. |
set(K key, V value, long offset) | void | 값 지정 | 주어진 'value'로 'offset'에서 시작하는 'key'의 일부를 덮어씁니다. |
set(K key, V value, long timeout, TimeUnit unit) | void | 값 지정 | 'key'의 'value'와 만료 'timeout'을 설정합니다. |
set(K key, V value, Duration timeout) | default void | 값 지정 | 'key'의 'value'와 만료 'timeout'을 설정합니다. |
setBit(K key, long offset, boolean value) | Boolean | 값 지정 | 'key'에 저장된 값의 'offset'에서 비트를 설정합니다. |
setIfAbsent(K key, V value) | Boolean | 값 지정 | 'key'가 없는 경우 문자열 'value'를 가지도록 'key' 설정합니다. |
setIfAbsent(K key, V value, long timeout, TimeUnit unit) | Boolean | 값 지정 | 'key'가 없는 경우 문자열 'value'를 가지도록 'key'를 설정하고 'timeout' 만료 적용시킵니다. |
setIfAbsent(K key, V value, Duration timeout) | default Boolean | 값 지정 | 'key'가 없는 경우 문자열 'value'를 가지도록 'key'를 설정하고 'timeout' 만료 적용시킵니다. |
setIfPresent(K key, V value) | Boolean | 값 지정 | 'key'가 존재하는 경우 문자열 'value'를 가지도록 'key' 설정합니다. |
setIfPresent(K key, V value, long timeout, TimeUnit unit) | Boolean | 값 지정 | 'key'가 존재하는 경우 문자열 'value'를 가지도록 'key'를 설정하고 'timeout' 만료 적용합니다 |
setIfPresent(K key, V value, Duration timeout) | default Boolean | 값 지정 | 'key'가 존재하는 경우 문자열 'value'를 가지도록 'key'를 설정하고 'timeout' 만료 적용합니다. |
getOperations() | RedisOperations<K, V> | 기타 | |
size(K key) | Long | 기타 | 'key'에 저장된 값의 길이를 가져옴 |
3) ValueOperations 사용예시
💡 ValueOperations 사용예시
1. set() 메서드를 통해 key, value 값을 기반으로 값을 지정합니다.
2. get() 메서드를 통해 key 값을 기반으로 값을 조회합니다.
3. getAndDelete() 메서드를 통해 key 값을 반환하게 삭제합니다.
public class RedisServiceImpl implements RedisService {
private final RedisTemplate<String, Object> redisTemplate;
private void useValueOperations() {
String key = "key";
String value = "value";
ValueOperations<String, Object> values = redisTemplate.opsForValue();
// Redis에 값을 지정합니다.
values.set(key, value);
// Reids의 key 값을 기반으로 값을 조회합니다.
String result = String.valueOf(values.get(key));
// Redis의 key 값을 반환하고 row를 삭제합니다.
String delKey = values.getAndDelete(key);
}
}
오늘도 감사합니다. 😀
반응형