Redis 질서 있 는 집합 형식의 상용 명령 소결
질서 있 는 집합 유형 은 이름 에서 알 수 있 을 것 이다.사실은 집합 유형 에 질서 가 있 을 뿐이다.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 를 제외한다.ZREMRANGEBYRANK
와ZREMRANGEBYSCORE
는 글자 적 으로 잘 이해 되 고 모두 요 소 를 제거 하 며 하 나 는 아래 표 에 따라 하 나 는 점수 에 따른다.5.ZCARD 명령
문법:
ZCARD key
질서 있 는 집합 기 수 를 되 돌려 줍 니 다.
127.0.0.1:6379> zcard myzadd
(integer) 2
앞의 원소 삭제 작업 을 통 해 이 제 는 두 개의 원소 만 남 았 다.6.ZCOUNT 명령
문법:
ZCOUNT key min max
ZCOUNT
명령 과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 는 최고 점 수 를 제한 하지 않 는 다 는 뜻 입 니 다.총결산
이상 은 레 디 스 의 질서정연 한 집합 유형 에 관 한 자주 사용 되 는 명령 의 모든 내용 입 니 다.글 은 상세 하 게 정리 되 었 습 니 다.여러분 의 학습 이나 업무 에 편리 함 을 가 져 다 주 셨 으 면 합 니 다.궁금 하신 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Redis 해시에 대한 완벽한 가이드변경 가능하므로 필요에 따라 쉽게 변경하고 업데이트할 수 있습니다. Redis 해시는 구조가 평평하므로 JSON에서와 같이 여러 수준을 가질 수 없습니다. redis 해시의 명명 규칙은 hash:key 로 입력되므로...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.