반응형
해당 글에서는 Spring Data Redis에 포함된 RedisTemplate 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) RedisTemplate
💡 RedisTemplate
- Spring Data Redis에서 제공하는 템플릿 클래스로 데이터 조작을 추상화하고 자동화해주는 역할을 수행하여 코드의 중복을 줄여주는 클래스입니다.
- 기본적으로 데이터를 읽고 쓰는데 필요한 모든 작업을 처리해줍니다. 이 클래스를 활용하여 String, List, Set, Sorted Set, Hash 등 다양한 Redis 데이터 구조를 쉽게 다룰 수 있습니다.
- 연결 관리, 직렬화/역직렬화, 예외 처리 등을 처리해주며, 기본적인 Redis 데이터 액세스 코드를 간결하게 만들어줍니다
💡 ValueOperations 클래스는 org.springframework.data.redis.core 패키지 내에 포함되어 있습니다.
💡 RedisTemplate을 이용하여 아래의 데이터 구조들을 쉽게 다룰 수 있습니다.
2) RedisTemplate Class Method
💡 RedisTemplate Class Method
- 해당 분류 내용은 API를 확인하고 비슷한 내용에 대해 분류하였으니 참고하시면 될것 같습니다.
메서드 | 리턴 타입 | 분류 | 설명 |
opsForCluster() | ClusterOperations<K, V> | 인터페이스 반환 | 클러스터 특정 작업 인터페이스를 반환 |
opsForGeo() | GeoOperations<K, V> | 인터페이스 반환 | 지오스패셜 특정 작업 인터페이스를 반환 |
opsForHash() | <HK, HV> HashOperations<K, HK, HV> | 인터페이스 반환 | 해시 값에 수행된 작업을 반환 |
opsForHyperLogLog() | HyperLogLogOperations<K, V> | 인터페이스 반환 | HyperLogLog 작업을 반환 |
opsForList() | ListOperations<K, V> | 인터페이스 반환 | 리스트 값에 수행된 작업을 반환 |
opsForSet() | SetOperations<K, V> | 인터페이스 반환 | 세트 값에 수행된 작업을 반환 |
opsForStream() | <HK, HV> StreamOperations<K, HK, HV> | 인터페이스 반환 | 스트림에 수행된 작업을 반환 |
opsForStream(HashMapper<? super K,? super HK,? super HV> hashMapper) | <HK, HV> StreamOperations<K, HK, HV> | 인터페이스 반환 | 스트림에 수행된 작업을 반환 |
opsForValue() | ValueOperations<K, V> | 인터페이스 반환 | 간단한 값(또는 Redis 용어로 문자열)에 수행된 작업을 반환 |
opsForZSet() | ZSetOperations<K, V> | 인터페이스 반환 | zset 값(또는 정렬된 집합으로 알려짐)에 수행된 작업을 반환 |
boundGeoOps(K key) | BoundGeoOperations<K,V> | 인터페이스 반환 | 주어진 키에 바인딩된 지리 공간 특정 작업 인터페이스를 반환합니다. |
boundHashOps(K key) | <HK,HV> BoundHashOperations<K,HK,HV> | 값 반환 | 주어진 키에 바인딩된 해시 값에 수행된 작업을 반환합니다. |
boundListOps(K key) | BoundListOperations<K,V> | 값 반환 | 주어진 키에 바인딩된 목록 값에 수행된 작업을 반환합니다. |
boundSetOps(K key) | BoundSetOperations<K,V> | 값 반환 | 주어진 키에 바인딩된 세트 값에 수행된 작업을 반환합니다. |
boundStreamOps(K key) | <HK,HV> BoundStreamOperations<K,HK,HV> | 값 반환 | 주어진 키에 바인딩된 스트림에 수행된 작업을 반환합니다. |
boundValueOps(K key) | BoundValueOperations<K,V> | 값 반환 | 주어진 키에 바인딩된 간단한 값(또는 Redis 용어로 문자열)에 수행된 작업을 반환합니다. |
boundZSetOps(K key) | BoundZSetOperations<K,V> | 값 반환 | 주어진 키에 바인딩된 zset 값(또는 정렬된 세트)에 수행된 작업을 반환합니다. |
keys | Set<K> | 키 조작 | 주어진 pattern과 일치하는 모든 키를 찾습니다. |
hasKey | Boolean | 키 조작 | 주어진 key가 존재하는지 확인합니다. |
countExistingKeys(Collection<K> keys) | Long | 키 조작 | 존재하는 keys의 수를 세어줍니다. |
type(K key) | DataType | 키 조작 | key에 저장된 유형을 결정합니다. |
expire(K key, long timeout, TimeUnit unit) | Boolean | 키 조작 | 주어진 key에 대한 생존 시간을 설정합니다. |
expireAt | Boolean | 키 조작 | 주어진 key의 만료일을 날짜 타임스탬프로 설정합니다. |
expireAt(K key, Date date) | Boolean | 키 조작 | 주어진 key에 대한 만료 시간을 날짜 타임스탬프로 설정합니다. |
copy(K source, K target, boolean replace) | Boolean | 키 조작 | 주어진 sourceKey를 targetKey로 복사합니다. |
randomKey() | K | 키 조작 | 키 공간에서 무작위 키를 반환합니다. |
rename(K oldKey, K newKey) | void | 키 조작 | oldKey를 newKey로 이름을 변경합니다. |
renameIfAbsent(K oldKey, K newKey) | Boolean | 키 조작 | newKey가 존재하지 않는 경우에만 oldKey를 newKey로 이름을 변경합니다. |
move(K key, int dbIndex) | Boolean | 키 조작 | 이동된 key를 데이터베이스의 index로 이동 |
persist(K key) | void | 키 조작 | 주어진 key의 만료를 제거합니다. |
delete(Collection<K> keys) | Long | 키 조작 | 주어진 keys를 삭제합니다. |
delete(K key) | Boolean | 키 조작 | 주어진 key를 삭제합니다. |
getExpire | Long | 키 조작 | 주어진 key의 생존 시간을 초 단위로 가져옵니다. |
getExpire | Long | 키 조작 | 주어진 key의 생존 시간을 가져와 주어진 TimeUnit으로 변환합니다. |
unlink(Collection<K> keys) | Long | 키 조작 | keys를 키 공간에서 연결 해제합니다. |
unlink(K key) | Boolean | 키 조작 | key를 키 공간에서 연결 해제합니다. |
getDefaultSerializer | RedisSerializer<?> | 직렬화 | 이 템플릿에서 사용되는 기본 직렬화를 반환합니다. |
getHashKeySerializer | RedisSerializer<?> | 직렬화 | hashKeySerializer를 반환합니다. |
getHashValueSerializer | RedisSerializer<?> | 직렬화 | hashValueSerializer를 반환합니다. |
getKeySerializer | RedisSerializer<?> | 직렬화 | 이 템플릿에서 사용되는 키 직렬화를 반환합니다. |
getStringSerializer | RedisSerializer<String> | 직렬화 | stringSerializer를 반환합니다. |
getValueSerializer | RedisSerializer<?> | 직렬화 | 이 템플릿에서 사용되는 값 직렬화를 반환합니다. |
setDefaultSerializer(RedisSerializer<?> serializer) | void | 직렬화 | 이 템플릿에 사용될 기본 직렬화를 설정합니다. |
setHashKeySerializer(RedisSerializer<?> hashKeySerializer) | void | 직렬화 | 이 템플릿에 사용될 해시 키(또는 필드) 직렬화를 설정합니다. |
setHashValueSerializer(RedisSerializer<?> hashValueSerializer) | void | 직렬화 | 이 템플릿에 사용될 해시 값 직렬화를 설정합니다. |
setValueSerializer(RedisSerializer<?> serializer) | void | 직렬화 | 이 템플릿에 사용될 값 직렬화를 설정합니다. |
setKeySerializer(RedisSerializer<?> serializer) | void | 직렬화 | 이 템플릿에 사용될 키 직렬화를 설정합니다. |
setStringSerializer(RedisSerializer<String> stringSerializer) | void | 직렬화 | 이 템플릿에 사용될 문자열 값 직렬화를 설정합니다(인수 또는 반환 형식이 항상 문자열인 경우). |
setEnableDefaultSerializer(boolean enableDefaultSerializer) | void | 직렬화 | - |
직렬화 | |||
setBeanClassLoader(ClassLoader classLoader) | void | 직렬화 | 기본 JdkSerializationRedisSerializer에 사용될 ClassLoader를 설정합니다. |
exec() | List<Object> | 직렬화 | 기본 RedisSerializer를 사용하여 결과가 바이트 배열 또는 바이트 배열의 컬렉션 또는 맵 또는 튜플인 경우 deserialize하는 트랜잭션을 실행합니다. |
exec(RedisSerializer<?> valueSerializer) | List<Object> | 직렬화 | 제공된 RedisSerializer를 사용하여 결과가 바이트 배열 또는 바이트 배열의 컬렉션인 경우 deserialize하는 트랜잭션을 실행합니다. |
execute(RedisScript<T> script, RedisSerializer<?> argsSerializer, RedisSerializer<T> resultSerializer, List<K> keys, Object... args) | <T> T | 직렬화 | 제공된 RedisSerializer를 사용하여 스크립트 인수와 결과를 직렬화하여 주어진 RedisScript를 실행합니다. |
getClientList | List<RedisClientInfo> | Redis Client | 연결된 클라이언트에 대한 정보와 통계를 요청합니다. |
killClient | void | Redis Client | client에서 주어진 ip:port로 식별되는 특정 클라이언트 연결을 종료합니다. |
replicaOf(String host, int port) | void | Redis 복제 | 새로운 마스터로 레디스 복제 설정을 변경합니다. |
replicaOfNoOne() | void | Redis 복제 | 서버를 마스터로 변경합니다. |
sort(SortQuery<K> query) | List<V> | 정렬 | query의 요소를 정렬합니다. |
sort(SortQuery<K> query, K storeKey) | Long | 정렬 | query의 요소를 정렬하고 결과를 storeKey에 저장합니다. |
sort(SortQuery<K> query, BulkMapper<T,S> bulkMapper, RedisSerializer<S> resultSerializer) | <T,S> List<T> | 정렬 | query의 요소를 정렬하고 BulkMapper와 RedisSerializer를 적용합니다. |
sort(SortQuery<K> query, BulkMapper<T,V> bulkMapper) | <T> List<T> | 정렬 | query의 요소를 정렬하고 BulkMapper를 적용합니다. |
sort(SortQuery<K> query, RedisSerializer<T> resultSerializer) | <T> List<T> | 정렬 | query의 요소를 정렬하고 RedisSerializer를 적용합니다. |
execute(RedisCallback<T> action) | <T> T | 실행 | Redis 연결 내에서 주어진 작업을 실행합니다. |
execute(RedisCallback<T> action, boolean exposeConnection) | <T> T | 실행 | 연결을 노출하거나 노출하지 않는 연결 내에서 주어진 작업 객체를 실행합니다. |
execute(RedisScript<T> script, List<K> keys, Object... args) | <T> T | 실행 | 주어진 RedisScript를 실행합니다. |
execute(SessionCallback<T> session) | <T> T | 실행 | Redis 세션을 실행합니다. |
execute(RedisCallback<T> action, boolean exposeConnection, boolean pipeline) | <T> T | 실행 | 연결을 노출하거나 노출하지 않는 연결 내에서 주어진 작업 객체를 실행합니다. |
executePipelined(RedisCallback<?> action) | List<Object> | 실행 | 파이프라인 연결에서 주어진 작업 객체를 실행하고 결과를 반환합니다. |
executePipelined(RedisCallback<?> action, RedisSerializer<?> resultSerializer) | List<Object> | 실행 | 파이프라인 연결에서 주어진 작업 객체를 실행하고 전용 직렬화 도구를 사용하여 결과를 반환합니다. |
executePipelined(SessionCallback<?> session) | List<Object> | 실행 | 파이프라인 연결에서 주어진 Redis 세션을 실행합니다. |
executePipelined(SessionCallback<?> session, RedisSerializer<?> resultSerializer) | List<Object> | 실행 | 전용 직렬화 도구를 사용하여 파이프라인 연결에서 주어진 Redis 세션을 실행하고 결과를 반환합니다. |
executeWithStickyConnection(RedisCallback<T> callback) | <T extends Closeable>T | 실행 | 새로운 RedisConnection을 할당하고 실제 메소드의 반환 유형에 바인딩합니다. |
restore(K key, byte[] value, long timeToLive, TimeUnit unit, boolean replace) | void | 실행 | 레디스 복원 명령을 실행합니다. |
multi() | void | 기타 | 트랜잭션 블록의 시작을 표시 |
unwatch() | void | 기타 | 이전에 RedisOperations.watch(Object)로 키를 모두 플러시합니다. |
watch(Collection<K> keys) | void | 기타 | RedisOperations.multi()로 시작된 트랜잭션 중에 keys를 수정을 감시합니다. |
watch(K key) | void | 기타 | RedisOperations.multi()로 시작된 트랜잭션 중에 key를 수정을 감시합니다. |
discard() | void | 기타 | RedisOperations.multi() 이후에 발행된 모든 명령을 무시합니다. |
dump(K key) | byte[] | 기타 | Redis의 dump 명령을 실행하고 결과를 반환합니다. |
isExposeConnection | boolean | 기타 | 기본 Redis 연결을 RedisCallback 코드에 노출할지, 아니면 연결 프록시(기본값)를 사용할지 반환합니다. |
postProcessResult(T result, RedisConnection conn, boolean existingConnection) | protected <T> T | 기타 | - |
preProcessConnection(RedisConnection connection, boolean existingConnection) | protected RedisConnection | 기타 | 연결을 처리합니다(설정이 실행되기 전에). |
scan(ScanOptions options) | Cursor<K> | 기타 | Cursor를 사용하여 키를 반복합니다. |
기타 | |||
setEnableTransactionSupport(boolean enableTransactionSupport) | void | 기타 | true로 설정하면 RedisTemplate는 MULTI...EXEC |
setExposeConnection(boolean exposeConnection) | void | 기타 | RedisCallback 코드에 레디스 연결을 노출할지 여부를 설정합니다. |
setScriptExecutor(ScriptExecutor<K> scriptExecutor) | void | 기타 | - |
convertAndSend(String channel, Object message) | Long | 기타 | 주어진 메시지를 주어진 채널로 게시합니다. |
오늘도 감사합니다. 😀
반응형