| 사용 방식 | Redis 내부 구조 | 예시 |
|---|---|---|
opsForValue() | 🔹 String (Key → Value) | 일반적인 @Cacheable처럼 동작 |
opsForSet() | 🔹 Set 구조 | 중복 없는 집합 |
opsForList() | 🔹 List 구조 | 순서 있는 리스트 (Queue처럼도 사용 가능) |
opsForHash() | 🔹 Hash (Map 구조) | 내부적으로 Key → Map(Key → Value) |
opsForZSet() | 🔹 Sorted Set | 점수 기반 정렬된 집합 |
| Redis 구조 | 메서드 | 비유 |
|---|---|---|
| String (Key-Value) | get(key) | 단독 명령 수령자 호출 |
| Set | members(setKey) | 집합 병영에 있는 병사 전체 소집 |
| List | range(listKey, 0, -1) | 줄 세운 대원 전부 조회 |
| Hash (Map) | entries(hashKey) | 대장 포함 전체 키-값 병사 점검 |
| ZSet | rangeWithScores(zsetKey, 0, -1) | 점수 순 정렬된 병사 호출 |
redisTemplate.setKeySerializer(new StringRedisSerializer());
redisTemplate.setValueSerializer(new StringRedisSerializer());
redisTemplate.opsForValue().set("myKey", "myValue");
→ Redis 내부 저장:
Key: myKey Value: myValue
redisTemplate.opsForSet().add("mySetKey", "value1", "value2");
redisTemplate.opsForSet().members("mySetKey");
→ Redis 내부 저장:
Set mySetKey = { "value1", "value2" }
redisTemplate.opsForHash().put("user:1", "name", "FutureMan");
redisTemplate.opsForHash().put("user:1", "role", "admin");
redisTemplate.opsForHash().entries("user:1");
→ Redis 내부 저장:
Hash user:1 { name: FutureMan, role: admin }