Redis/Spring Data Redis

[Spring Data Redis] Sorted Sets

오늘도개발 2024. 5. 13. 19:08

 

1. Redis Sorted Sets 란?

 

 - set 과 유사

 

 - 각 값은 score을 기준으로 정렬되어 있음

 

 *시간 복잡도 관련해서는 다음 글을 참고

https://kjwit.tistory.com/entry/Redis-sorted-sets

 

[Redis] sorted sets

1. Redis sorted sets 란?   - 정렬된 집합   - Score를 기준으로 정렬됨   2. Redis sorted sets 사용 방법   - ZADD와 ZREM 로 데이터 입력 및 제거 가능> ZADD trip_scores 10 tripId:1(integer) 1> ZADD trip_scores 12 tripId:3

kjwit.tistory.com

 

 

 

 

2. ZSetOperations<K, V> 사용 방법

 

 -  private final RedisTemplate<String,String> redisTemplate  으로 지정 후

 

 -  redisTemplate.opsForZSet() 으로 호출 가능

 

 -  redisTemplate.opsForZSet().add( [key 값], [Value 값], [Score ]) 으로 데이터를 저장 가능

 

 -  redisTemplate.opsForZSet().rank( [key 값], [Value 값] ) 으로 전체 데이터 순위 확인 가능

 

 -  redisTemplate.opsForZSet().range([key 값], [start idx],  [end idx] ) 으로 score 오름차순 범위 출력 가능

 

redisTemplate.opsForZSet().reverseRange([key 값], [start idx],  [end idx] ) 으로 score 내림차순 범위 출력 가능

 

 

 

3. ZSetOperations<K, V> 예시

 

@Autowired
    RedisTemplate<String, String> redisTemplate;

    @Test
    void redisTest(){
        redisTemplate.opsForZSet().add("test:zset1", "aaa", 100);
        redisTemplate.opsForZSet().add("test:zset1", "bbb", 300);
        redisTemplate.opsForZSet().add("test:zset1", "ccc", 200);

        System.out.println("test:zset bbb rank value = ");
        System.out.println(redisTemplate.opsForZSet().rank("test:zset1","bbb"));

        System.out.println("test:zset values = ");
        System.out.println(redisTemplate.opsForZSet().range("test:zset1",0,-1));

        System.out.println("test:zset reverse values = ");
        System.out.println(redisTemplate.opsForZSet().reverseRange("test:zset1",0,-1));

    }

 

 

 

'Redis > Spring Data Redis' 카테고리의 다른 글

[Spring Data Redis] Redis Pub / Sub  (0) 2024.05.14
[Spring Data Redis] HyperLogLog  (0) 2024.05.13
[Spring Data Redis] Hashes  (0) 2024.05.13
[Spring Data Redis] Sets  (0) 2024.05.13
[Spring Data Redis] Lists  (0) 2024.05.13