Redis 질서 있 는 집합 형식의 상용 명령 소결

1.질서 있 는 집합 유형
질서 있 는 집합 유형 은 이름 에서 알 수 있 을 것 이다.사실은 집합 유형 에 질서 가 있 을 뿐이다.Redis 의 질서 있 는 집합 유형 은 실제 적 으로 집합 유형 에서 모든 요소 에 하나의 점 수 를 연결 하 는 것 이다.질서 있 는 것 은 실제 적 으로 점수 가 질서 가 있다 는 것 이다.우 리 는 점수 의 범위 에 따라 집합 과 다른 조작 을 얻 을 수 있다.집합 한 원 소 는 여전히 같 을 수 없 지만 점 수 는 같 을 수 있다.
다음은 질서 있 는 집합 과 유형 과 목록 형식의 유사 점 을 열거 합 니 다.
      ① 둘 다 질서 가 있다(쓸데없는 소리!)
      ② 둘 다 특정한 범위 의 요 소 를 얻 을 수 있다.
다음은 차이 점 을 열거 합 니 다.
      ① 목록 은 링크 로 이 루어 진 것 으로 양쪽 에 가 까 운 데 이 터 는 읽 는 속도 가 빠 르 고 요소 가 너무 많 으 면 중간 요 소 를 얻 는 속도 가 느리다.질서 있 는 집합 형식 에 사용 되 는 산 목록 과 도약 표(Skip list)가 이 루어 지기 때문에 어느 부분의 데 이 터 를 읽 어도 차이 가 많 지 않 습 니 다(시간 복잡 도 는 O(logN).
      ② 목록 에서 요소 의 위 치 를 간단하게 조정 할 수 없 지만 질서 있 게 집합 하면(점수 변경 을 통 해)가능 합 니 다.
      ③ 질서 있 는 집합 비 목록 비 메모리(점수,해시,도약 표 저장).
2.Redis 질서 있 게 집합 하 는 상용 명령
Redis 질서 있 게 집합 하 는 상용 명령 은zadd,zrange,zremrangebyrank,zremrangebyscore,zcard등 이 있 는데 모두 사용 빈도 가 비교적 높 고 일부 매개 변수 에 대한 설명 등 이 있다.어디 보 자.같이 보 자.
1.ZADD 명령
하나 이상member 요소 와score 값 을 질서 있 는 집합key 에 추가 합 니 다.
만약 에 어떤member 이 질서 있 는 집합 구성원 이 라면 이member score 값 을 업데이트 하고 이member 요 소 를 다시 삽입 함으로써 이member 가 정확 한 위치 에 있 음 을 확보한다.score 값 은 정수 나 이중 정밀도 부동 소수점 일 수 있다.
먼저zadd명령 으로 일부 요 소 를 질서 있 는 집합 에 대량으로 추가 하고 뒤의 작업 은 모두 이 집합 을 바탕 으로 진행 된다.

127.0.0.1:6379> zadd myzadd 1 a 2 b 3 c 4 d 5 e 6 f 7 d 8 e 9 f 10 tanteng.me
(integer) 7
그림 에서 보 듯 이:

질서 있 게 집합 하 는 가장 특별한 점 은score이다.점수 가 있 으 면 많은 일 을 할 수 있다.이score는 점수 로 이해 할 수 있 을 뿐만 아니 라 시간 스탬프 나 ip 의 성형 형식 도 저장 하여 유연 하 게 활용 할 수 있다.
2,ZRANGE 명령
문법:ZRANGE key start stop [WITHSCORES]zrange명령 은 질서 있 는 집합 에서 주어진 구간 의 요 소 를 되 돌려 주 는 데 사 용 됩 니 다.start 는 0 부터 시작 하고 stop 은 끝 에 표 시 됩 니 다.마이너스 라면 꼴찌 부터 시작 합 니 다.-1 꼴찌 첫 번 째,-2 꼴찌 두 번 째...
아래 의 조작 을 보면 일목요연 하 다.

127.0.0.1:6379> zrange myzadd 0 1
1) "a"
2) "b"
127.0.0.1:6379> zrange myzadd 0 5
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> zrange myzadd 1 5
1) "b"
2) "c"
3) "d"
4) "e"
5) "f"
127.0.0.1:6379> zrange myzadd 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
7) "tanteng.me"
더하기WITHSCORES매개 변수 표시 값:

127.0.0.1:6379> zrange myzadd 0 -1 WITHSCORES
 1) "a"
 2) "1"
 3) "b"
 4) "2"
 5) "c"
 6) "3"
 7) "d"
 8) "7"
 9) "e"
10) "8"
11) "f"
12) "9"
13) "tanteng.me"
14) "10"
3.ZREMRANGEBYRANK 명령
문법:ZREMRANGEBYRANK key start stop순위(rank)구간 의 모든 구성원 을 질서 있 게 집중 적 으로 지정 합 니 다.start 는 0 부터 stop 은 마이너스 로 몇 위 를 뒤 집 을 수 있 음 을 나타 낸다.

127.0.0.1:6379> zremrangebyrank myzadd 0 2
(integer) 3
이 명령 을 실행 하면 앞의 세 요소 a,b,c 를 삭제 합 니 다.
4.ZREMRANGEBYSCORE 명령
문법:ZREMRANGEBYSCORE key min max질서 집합key 에서 모든 score 값 은 min 과 max 사이(min 또는 max 포함)의 구성원 을 제거 합 니 다.

127.0.0.1:6379> zremrangebyscore myzadd 7 8
(integer) 2
이렇게 되면 분 가 를 7 과 8 의 원소 d 로 하고 e 를 제외한다.ZREMRANGEBYRANKZREMRANGEBYSCORE는 글자 적 으로 잘 이해 되 고 모두 요 소 를 제거 하 며 하 나 는 아래 표 에 따라 하 나 는 점수 에 따른다.
5.ZCARD 명령
문법:ZCARD key질서 있 는 집합 기 수 를 되 돌려 줍 니 다.

127.0.0.1:6379> zcard myzadd
(integer) 2
앞의 원소 삭제 작업 을 통 해 이 제 는 두 개의 원소 만 남 았 다.
6.ZCOUNT 명령
문법:ZCOUNT key min maxZCOUNT명령 과ZCARD명령 의 차이 점 은ZCOUNT범위 에 따라 요소 개 수 를 되 돌려 주 는 것 을 지원 합 니 다.
집합 요소 가 거의 삭제 되 지 않 았 기 때문에 요 소 를 다시 추가 합 니 다.

127.0.0.1:6379> zadd new 100 www.baidu.com 900 www.tanteng.me 12 www.yahoo.com 90 www.xunlei.com 88 www.juanpi.com
(integer) 5
그림 에서 보 듯 이:

현재 80 과 100 사이 의 구성원 수 를 되 돌려 줍 니 다.

127.0.0.1:6379> zcount new 80 100
(integer) 3
세 개 를 되돌리다.
Redis 에 인자 inf 가 있 습 니 다.-inf 는 첫 번 째 멤버 를 표시 하고+inf 는 마지막 을 표시 합 니 다.

127.0.0.1:6379> zcount new 80 +inf
(integer) 4
여기 서 4 개 수량 을 되 돌려 줍 니 다.+inf 는 최고 점 수 를 제한 하지 않 는 다 는 뜻 입 니 다.
총결산
이상 은 레 디 스 의 질서정연 한 집합 유형 에 관 한 자주 사용 되 는 명령 의 모든 내용 입 니 다.글 은 상세 하 게 정리 되 었 습 니 다.여러분 의 학습 이나 업무 에 편리 함 을 가 져 다 주 셨 으 면 합 니 다.궁금 하신 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기