대가는 결과를 만든다

[스터디] Redis Sorted Set 본문

개발/Redis

[스터디] Redis Sorted Set

yunzema 2018. 6. 27. 19:16
반응형

Redis는 5가지의 데이터 타입이 존재 : Strings, Lists, Sets, Sorted sets, Hashes



- Set과 Sorted Set의 차이


1) Key 하나당 n개의 중복되지 않는 값(Member)를 가짐


"Key"    "Member"

예) Fruits  -   apple

  -   banana

 ..............




2) Set과 구조는 같으나 각 member는 score를 갖는다. Key - Member - Score형태. Score값으로 오름차순 정렬됨


"Key"    "Member"    "Score"

예) Fruits  -   apple    -   10

  banana   -   12

  strawberry   - 15


*순위(RANK)의 시작은 0위부터 시작




- Example


1) ZADD 'key-name' 'score' 'member' ['score' 'member'.......]     //해당 key에 주어진 score와 함께 member를 추가

*이미 존재하는 중복된 멤버는 추가되지 않으며 score도 더해지지 않는다 ZINCRBY를 사용해야 함.

   예) ZADD myzset 1 "one"


2) ZREM 'key-name' 'member'                                    //해당 Key에서 주어진 member를 제거


3) ZCARD ZCARD key-name                                     //주어진 Key의 Member의 수 반환


4) ZINCRBY 'key-name' 'increment' 'member'                    //멤버의 Score를 Increment만큼 증가

 *member가 존재하지 않는다면 자동으로 추가하여 score를 적용하고, 이미 존재하는 Member의 Socre에는 주어진 Score를 더함.


5) ZCOUNT 'key-name' 'min' 'max'                               //주어진 범위안에 있는 score에 해당하는 멤버의 수를 반환


6) ZRANK 'key-name' 'member'                                  //주어진 Member의 Rank를 반환


7) ZSCORE 'key-name' member                                 //주어진 Member의 Socre를 반환


8) ZRANGE 'key-name' start stop [WITHSCORES]                 //start과 stop사이의 member와 순위를 위한 score를 옵션으로 리턴


9) ZREVRANGE 'key-name' start stop [WITHSCORES]            //start과 stop사이의 member와 순위를 위한 score를 내림차순으로 리턴

*즉 점수가 높은 순으로 정렬







참고 :  https://redislabs.com/ebook/part-2-core-concepts/chapter-3-commands-in-redis/3-5-sorted-sets/


php redis 명령어 참고 : https://github.com/phpredis/phpredis#sorted-sets

Comments