RedisTemplate에 사용되는 메서드

haruceki·2024년 8월 12일
0

RedisTemplate은 Spring Data Redis에서 Redis 서버와의 상호작용을 위한 기본 클래스이다. 이 클래스는 Redis의 다양한 데이터 타입에 대한 작업을 지원하는 여러 Operations 인터페이스를 제공한다. 각 Operations 인터페이스는 Redis의 특정 데이터 타입에 대한 메서드를 정의한다.

1. ValueOperations

ValueOperations는 Redis의 문자열 데이터 타입을 다룬다. 예를 들어, 특정 키에 문자열 값을 저장하고 조회할 때 사용한다.
특정 사용자의 세션 데이터를 저장하고 조회할 때 ValueOperations를 사용할 수 있다.

ValueOperations<String, String> valueOps = redisTemplate.opsForValue();

valueOps.set("key", "value");
String value = valueOps.get("key");

// 키가 'nonexistentKey'일 때, 값을 설정하지 않고 가져오는 경우 결과는 null이다.
String defaultValue = valueOps.get("nonexistentKey");

2. ListOperations

ListOperations는 Redis의 리스트 데이터 타입을 다룬다. 리스트의 양쪽 끝에 요소를 추가하거나 특정 범위의 요소를 조회할 때 사용한다.
작업 대기열을 관리할 때 ListOperations를 사용하여 작업을 추가하고 조회할 수 있다.

ListOperations<String, String> listOps = redisTemplate.opsForList();

listOps.leftPush("myList", "value1");
listOps.rightPush("myList", "value2");

String value = listOps.index("myList", 0);

listOps.remove("myList", 1, "value1");

3. SetOperations

SetOperations는 Redis의 집합(Set) 데이터 타입을 다룬다. 집합에 요소를 추가하거나 제거하고, 집합의 모든 요소를 조회할 때 사용한다.
사용자 그룹의 멤버 목록을 관리할 때 SetOperations를 사용할 수 있다.

SetOperations<String, String> setOps = redisTemplate.opsForSet();

setOps.add("mySet", "value1", "value2");

// 집합 'mySet'의 모든 요소를 가져온다.
Set<String> members = setOps.members("mySet"); // 결과 ['value1', 'value2']

setOps.remove("mySet", "value1");

// 'value1'이 집합 'mySet'에 존재하는지 확인한다.
boolean isMember = setOps.isMember("mySet", "value1"); // 결과는 false.

4. HashOperations

HashOperations는 Redis의 해시(Hash) 데이터 타입을 다룬다. 해시의 필드에 값을 설정하거나 조회할 때 사용한다.
사용자 프로필 데이터를 저장할 때 HashOperations를 사용할 수 있다.

HashOperations<String, String, String> hashOps = redisTemplate.opsForHash();

// 해시 'myHash'의 필드 'field1'에 'value1'을 설정한다.
hashOps.put("myHash", "field1", "value1");
String value = hashOps.get("myHash", "field1");

// 해시 'myHash'의 모든 엔트리를 가져온다.
Map<String, String> entries = hashOps.entries("myHash"); // 결과 {field1=value1}.

hashOps.delete("myHash", "field1");

5. ZSetOperations

ZSetOperations는 Redis의 정렬된 집합(Sorted Set) 데이터 타입을 다룬다. 스코어와 함께 요소를 추가하거나, 특정 범위의 요소를 조회할 때 사용한다.
사용자 점수 또는 리더보드를 관리할 때 ZSetOperations를 사용할 수 있다.

ZSetOperations<String, String> zsetOps = redisTemplate.opsForZSet();

// 정렬된 집합 'myZSet'에 'value1'을 스코어 1.0으로 추가한다.
zsetOps.add("myZSet", "value1", 1.0);

// 정렬된 집합 'myZSet'의 모든 요소를 가져온다.
Set<String> range = zsetOps.range("myZSet", 0, -1); // 결과는 ['value1']이다.

// 스코어 0.0에서 10.0 사이의 요소를 가져온다.
Set<String> rangeByScore = zsetOps.rangeByScore("myZSet", 0.0, 10.0); // 결과는 ['value1']이다.

zsetOps.remove("myZSet", "value1");
profile
희망도 절망도 없이 매일 코딩을 한다.

0개의 댓글