이 글에서는 주로 Ordered Set과 관련된 이슈를 정리하는 Redis에 대한 관련 지식을 제공합니다. Ordered Set에서 각 요소는 멤버와 해당 멤버와 관련된 점수로 구성되며, 멤버는 문자열로 저장됩니다. 64비트 배정밀도 부동 소수점 숫자로 저장되어 있으므로 모두에게 도움이 되기를 바랍니다.
추천 학습: Redis 동영상 튜토리얼
순서 세트. 각 요소는 멤버와 멤버와 연관된 점수로 구성됩니다. 멤버는 문자열로 저장되고 점수는 64비트 배정밀도 부동 소수점 숫자로 저장됩니다. 멤버는 중복될 수 없으며, 점수가 같은 경우 사전순으로 정렬됩니다.
멤버 추가 또는 업데이트
1. zadd 명령 형식: zadd key [NX|XX] [GT|LT] [CH] [INCR] 점수 멤버 [점수 멤버 …]
성공적으로 추가된 새 멤버 수를 반환합니다. 회원 점수를 업데이트하려면 0이 반환됩니다. zadd 핵심 점수 멤버 [점수 멤버 ...]
zadd key score member [score member ...]
XX选项的作用是只更新不添加,执行后返回0。zadd key XX score member [score member ...]
NX选项的作用是只添加不更新,执行成功返回添加元素的个数。zadd key NX score member [score member ...]
CH选项的作用是返回被修改成员的数量而非添加成功的成员数量,被修改包括新添加。zadd key CH score member [score member ...]
移除指定成员
1.zrem命令 格式:zrem key member [member …]
返回被移除成员的数量,成员不存在于集合中时自动忽略。zrem key member [member ...]
2.zremrangebyrank命令 格式:zremrangebyrank key start stop
移除指定排名范围内的成员,返回被移除成员的数量,排名可使用正数排名或负数排名。zremrangebyrank key start stop
3.zremrangebyscore命令 格式:zremrangebyscore key min max
移除指定分值范围内的成员,返回被移除成员的数量。min或max前加“(”表示取开区间即不包含边界值。zremrangebyscore key min max
4.zremrangebylex命令 格式:zremrangebylex key min max
对于按照字典序排列的有序集合(即分值相同),移除指定字典序范围内的成员。返回被移除成员的数量,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。zremrangebylex key min max
XX 옵션의 기능은 업데이트만 하고 추가는 하지 않으며, 실행 후 0을 반환하는 기능입니다. zadd 키 XX 점수 멤버 [점수 멤버 ...]
zadd 핵심 NX 점수 멤버 [점수 멤버 ...]
🎜🎜 CH 옵션의 기능은 성공적으로 추가된 멤버 수가 아닌 수정된 멤버 수를 반환하는 것입니다. 수정된 멤버에는 새로 추가된 멤버가 포함됩니다. 🎜zadd 주요 CH 점수 멤버 [점수 멤버 ...]
🎜🎜🎜🎜🎜지정된 멤버 제거🎜 1.zrem 명령 형식: zrem key member [member …]🎜 제거된 멤버 수를 반환합니다. 해당 멤버는 세트에 존재하지 않습니다. 자동으로 무시됩니다. 🎜zrem 핵심 멤버 [멤버 ...]
🎜🎜 2. zremrangebyrank 명령 형식: zremrangebyrank key start stop🎜 지정된 순위 범위 내의 구성원을 제거하고 제거된 구성원 수를 반환합니다. 순위는 긍정적인 순위 또는 부정적인 순위를 사용할 수 있습니다. 🎜zremrangebyrank 키 시작 중지
🎜🎜 3. zremrangebyscore 명령 형식: zremrangebyscore key min max🎜 지정된 점수 범위 내의 구성원을 제거하고 제거된 구성원의 수를 반환합니다. 열린 간격에 경계 값이 포함되지 않음을 나타내려면 min 또는 max 앞에 "("를 추가하세요. 🎜zremrangebyscore key min max
🎜🎜 4. zremrangebylex 명령 형식: zremrangebylex key min max🎜 사전순으로 정렬된 순서 세트의 경우(즉, 점수는 다음과 같습니다. 동일), 지정된 사전식 범위 내의 구성원을 제거합니다. 최소 및 최대값에 가능한 값을 반환합니다. "["가 있는 값은 사전식 경계를 포함함을 나타내고 "("는 해당 값을 나타냅니다. 사전을 포함하지 마십시오. "+"는 무한을 의미하고 "-"는 극소 🎜zremrangebylex key min max
🎜🎜🎜를 의미합니다.요소 팝업
1. zpopmax 명령 형식: zpopmax key [count]
점수가 가장 높은 요소가 여러 개 있는 경우 사전순이 가장 높은 멤버를 팝업합니다. count가 지정되지 않은 경우 기본값은 1입니다. 실행이 완료된 후 팝된 요소의 멤버와 점수가 반환됩니다. zpopmax 키 [개수]
zpopmax key [count]
2.zpopmin命令 格式:zpopmin key [count]
弹出分值最低的count个成员,分值最低有多个元素时弹出字典序最小的成员,若未指定count默认1个,执行完成后返回被弹出元素的成员和分值。zpopmin key [count]
3.bzpopmax命令 格式:bzpopmax key [key …] timeout
阻塞式的zpopmax命令,timeout为秒级精度。命令依次检查给定的有序集合,并从第一个非空集合弹出分值最大的元素,否则阻塞当前客户端直到有元素或超出超时时间返回nil。成功弹出元素时将返回一个列表,包含被弹出元素所在有序集合、成员以及分值。bzpopmax key [key ...] timeout
4.bzpopmin命令 格式:bzpopmin key [key …] timeout
阻塞式的zpopmin命令,timeout为秒级精度。命令依次检查给定的有序集合,并从第一个非空集合弹出分值最小元素,否则阻塞当前客户端直到有元素或超出超时时间返回nil。成功弹出元素时将返回一个列表,包含被弹出元素所在有序集合、成员以及分值。bzpopmin key [key ...] timeout
客户端2:
获取成员分值
1.zscore命令 格式:zscore key member
获取给定成员的分值,集合不存在或者成员不存在时返回nil。zscore key member
对成员分值做运算
1.zincrby命令 格式:zincrby key increment member
执行完后返回当前成员分值,increment为正时自增,否则为自减;若键不存在或成员不存在则执行创建操作。zincrby key increment member
获取成员数量
1.zcard命令 格式:zcard key
返回集合包含的成员数量,集合不存在时返回0。zcard key
2.zcount命令 格式:zcount key min max
获取指定分值范围内的成员数量,min或max前加“(”表示取开区间即不包含边界值,值+inf表示无穷大,-inf表示无穷小。zcount key min max
3.zlexcount命令 格式:zlexcount key min max
对于按照字典序排列的有序集合(即分值相同),获取指定字典序范围内的成员数量,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。zlexcount key min max
获取成员排名
1.zrank命令 格式:zrank key member
返回成员的升序排列排名,集合或成员不存在时返回nil。zrank key member
2.zrevrank命令 格式:zrevrank key member
返回成员的降序排列排名,集合或成员不存在时返回nil。zrevrank key member
2. zpopmin 명령 형식: zpopmin key [count] 점수가 가장 낮은 멤버를 카운트해서 팝업합니다. 점수가 가장 낮은 요소가 여러 개인 경우 사전순으로 가장 작은 멤버를 팝업합니다. count가 지정되지 않은 경우 기본값은 1입니다. 는 실행 후 팝된 요소의 멤버와 점수를 반환합니다.
zpopmin key [count]
🎜 3.bzpopmax 명령 형식: bzpopmax key [key…] timeout🎜 zpopmax 명령을 차단하면 시간 초과는 두 번째 수준의 정밀도입니다. 이 명령은 지정된 순서 집합을 차례로 확인하고 비어 있지 않은 첫 번째 집합에서 점수가 가장 높은 요소를 팝합니다. 그렇지 않으면 요소가 있을 때까지 현재 클라이언트가 차단되거나 시간 초과 기간이 초과된 후 nil이 반환됩니다. 요소가 성공적으로 팝되면 팝된 요소의 순서가 지정된 세트, 멤버 및 점수를 포함하는 목록이 반환됩니다. 🎜bzpopmax 키 [키 ...] 시간 초과
🎜🎜 4.bzpopmin 명령 형식: bzpopmin key [key …] timeout🎜 zpopmin 명령을 차단하면 시간 초과는 두 번째 수준의 정밀도입니다. 이 명령은 지정된 순서 집합을 차례로 확인하고 비어 있지 않은 첫 번째 집합에서 가장 작은 점수를 가진 요소를 팝합니다. 그렇지 않으면 요소가 있을 때까지 현재 클라이언트가 차단되거나 시간 초과 기간이 초과된 후 nil이 반환됩니다. 요소가 성공적으로 팝되면 팝된 요소의 순서가 지정된 세트, 멤버 및 점수를 포함하는 목록이 반환됩니다. 🎜bzpopmin 키 [키 ...] 시간 초과
🎜🎜 클라이언트 2: 🎜🎜🎜🎜🎜Get member Score🎜 1. zscore 명령 형식: zscore key member🎜 해당 멤버의 점수를 가져옵니다. 컬렉션이 없거나 멤버가 없으면 nil을 반환합니다. 🎜zscore 핵심 멤버
🎜🎜🎜🎜🎜 멤버 점수에 대한 작업 수행🎜 1. 아연rby 명령 형식: 아연rby 키 증가 멤버🎜 실행 후 현재 멤버 점수가 반환됩니다. 증가 값이 양수이면 자동으로 증가하고, 그렇지 않으면 감소합니다. 키가 아닌 경우 멤버가 존재하거나 존재하지 않는 경우 생성 작업을 실행합니다. 🎜zincrby 키 증분 멤버
🎜🎜🎜🎜🎜멤버 수 가져오기🎜 1. zcard 명령 형식: zcard key🎜 컬렉션에 포함된 멤버 수를 반환하고, 컬렉션이 없으면 0을 반환합니다. 🎜zcard 키
🎜🎜 2.zcount 명령 형식: zcount key min max🎜 지정된 점수 범위 내의 구성원 수를 가져옵니다. 경계 값을 포함하지 않는 열린 간격을 나타내려면 min 또는 max 앞에 "("를 추가합니다. 값 +inf는 무한대, - inf는 무한소를 의미합니다. 🎜zcount key min max
🎜🎜 3. zlexcount 명령 형식: zlexcount key min max🎜 사전순(즉, 동일한 점수)으로 정렬된 순서 세트의 경우 지정된 사전순의 구성원 수를 가져옵니다. 범위, 최소, 최대 가능한 값은 다음과 같습니다. "["가 있는 값은 사전식 경계가 포함되어 있음을 의미하고, "("가 있는 값은 사전식 경계가 포함되지 않음을 의미하며, "+"는 무한대를 의미합니다. , 그리고 "-"는 극소수를 의미합니다. 🎜zlexcount key min max🎜🎜🎜🎜🎜멤버 순위 가져오기🎜 1. zrank 명령 형식: zrank key member🎜 멤버의 오름차순 순위를 반환하거나, 세트나 멤버가 없는 경우 nil을 반환합니다. 🎜zrank 키 멤버🎜🎜 2.zrevrank 명령 형식: zrevrank key member🎜 멤버의 내림차순 순위를 반환하고, 컬렉션이나 멤버가 존재하지 않는 경우 nil을 반환합니다. 🎜zrevrank key member
🎜🎜🎜.멤버 가져오기
1. zrange 명령 형식: zrange key min max [BYSCORE|BYLEX] [REV] [LIMIT 오프셋 개수] [WITHSCORES]
지정된 인덱스 범위 내에서 멤버를 가져오고 점수를 기준으로 오름차순으로 정렬합니다. WITHSCORES 옵션은 명령이 실행된 후 점수를 반환할 수 있습니다. 반환된 목록의 홀수 숫자는 구성원이고 짝수 숫자는 해당 점수입니다. 컬렉션이 존재하지 않으면 공백을 반환합니다. zrange 키 최소 최대값 [WITHSCORES]
zrange key min max [WITHSCORES]
2.zrevrange命令 格式:zrevrange key start stop [WITHSCORES]
获取指定索引范围内的成员,按分值大小降序排列。WITHSCORES选项可在命令执行后返回分值,返回列表奇数位为成员,偶数位为对应分值。集合不存在时返回empty。zrevrange key start stop [WITHSCORES]
3.zrangebyscore命令 格式:zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
获取指定分值范围内的成员,按分值大小升序排列。WITHSCORES选项可在命令执行后返回分值,返回列表奇数位为成员,偶数位为对应分值。集合不存在时返回empty。zrangebyscore key min max [WITHSCORES] [LIMIT offset count]
[LIMIT offset count]选项的作用是限制返回的成员数量,offset指定需要跳过的成员数量,count执行最多返回成员的数量,count为负时取绝对值。
min或max前加“(”表示取开区间即不包含边界值,值+inf表示无穷大,-inf表示无穷小。
4.zrevrangebyscore命令 格式:zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
获取指定分值范围内的成员,按分值大小降序排列,注意max min顺序。zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
5.zrangebylex命令 格式:zrangebylex key min max [LIMIT offset count]
当成员分值相同时,获取指定字典序范围内成员,按字典序升序排列,min、max的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。zrangebylex key min max [LIMIT offset count]
6.zrevrangebylex命令 格式:zrevrangebylex key max min [LIMIT offset count]
当成员分值相同时,获取指定字典序范围内成员,按字典序降序排列,max、min的可取值包括:带“[”的值表示包含字典序边界,带“(”表示不包含字典序边界,“+”表示无穷大,“-”表示无穷小。zrevrangebylex key max min [LIMIT offset count]
zrevrange 키 시작 중지 [WITHSCORES]
🎜🎜 3. zrangebyscore 명령 형식: zrangebyscore key min max [WITHSCORES] [LIMIT 오프셋 개수]🎜 지정된 점수 범위 내의 멤버를 가져오고 점수 크기에 따라 오름차순으로 정렬합니다. WITHSCORES 옵션은 명령이 실행된 후 점수를 반환할 수 있습니다. 반환된 목록의 홀수 숫자는 구성원이고 짝수 숫자는 해당 점수입니다. 컬렉션이 존재하지 않으면 공백을 반환합니다. 🎜zrangebyscore 키 최소 최대 [WITHSCORES] [LIMIT 오프셋 수]
🎜🎜 [LIMIT 오프셋 개수] 옵션은 반환되는 멤버 수를 제한하는 것입니다. 오프셋은 건너뛸 멤버 수를 지정합니다. Count는 반환되는 최대 멤버 수를 실행합니다. count일 때 음수인 경우 절대값을 취합니다. 🎜🎜 min 또는 max 앞에 "를 추가합니다( "는 경계 값을 포함하지 않는 열린 간격을 취하는 것을 의미하고, +inf 값은 무한대를 의미하고, -inf는 무한소를 의미합니다. 🎜zrevrangebyscore key max min [WITHSCORES] [LIMIT 오프셋 수]
🎜🎜 5.zrangebylex 명령 형식: zrangebylex key min max [LIMIT 오프셋 수]🎜멤버 점수가 동일한 경우 Strong> , 지정된 사전식 범위 내에서 멤버를 가져와 오름차순으로 정렬합니다. min 및 max의 사용 가능한 값에는 다음이 포함됩니다. "["가 있는 값은 사전식 경계가 포함됨을 나타냅니다. "("는 사전식 경계를 포함하지 않음을 나타내고, "+"는 무한을 의미하고, "-"는 극소를 의미합니다. 🎜zrangebylex key min max [LIMIT 오프셋 카운트]
🎜🎜 6.zrevrangebylex 명령 형식: zrevrangebylex key max min [LIMIT 오프셋 개수] 🎜구성원 점수가 동일한 경우 지정된 사전순으로 구성원을 가져와서 최대 및 최소값의 가능한 값은 다음과 같습니다. "["가 있는 값은 사전식 경계가 포함되어 있음을 나타내고, "("가 있는 값은 사전식 경계가 포함되지 않음을 의미하고, "+"는 무한대, "-"는 극소를 의미합니다. 🎜zrevrangebylex 키 최대 최소 [LIMIT 오프셋 수]
🎜
Set 작업
1. Union
1)zunionstore 명령 형식: zunionstore 대상 numkeys key [key …] [WEIGHTS 가중치] [AGGREGATE SUM|MIN|MAX]
numkeys는 작업에 참여하는 세트 수이며, 오류에 해당하지 않으면 반환되며, 실행 후 새 컬렉션의 멤버 수를 반환합니다. Union 결과는 멤버 세트입니다. 작업에 참여하는 세트에 동일한 멤버가 있는 경우 새 세트의 기본 멤버 점수는 원래 세트 멤버의 점수를 합한 것입니다. zunionstore 대상 numkeys 키 [키 ...]
zunionstore destination numkeys key [key ...]
AGGREGATE选项作用是指定使用的聚合函数,不指定时默认SUM。SUM指分值相加,MIN指取最小分值,MAX指取最大分值。zunionstore destination numkeys key [key ...] [AGGREGATE SUM|MIN|MAX]
WEIGHTS 选项作用是执行聚合前为每个集合分别设置一个权重,权重分别与集合中成员分值相乘得到新分值,然后执行聚合计算。
2)zunion命令 格式:zunion numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
执行完成后返回新集合成员。zunion numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
2.交集
1)zinterstore命令 格式:zinterstore destination numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
执行完后返回新集合的成员数量。zinterstore destination numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX]
2)zinter命令 格式:zinter numkeys key [key …] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
执行完后返回新集合成员。zinter numkeys key [key ...] [WEIGHTS weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
AGGREGATE 옵션은 사용할 집계 함수를 지정하는 데 사용됩니다. 지정하지 않으면 기본값은 SUM입니다. SUM은 점수를 합산하는 것을 의미하고, MIN은 최소 점수를 취하는 것을 의미하며, MAX는 최대 점수를 취하는 것을 의미합니다. zunionstore 대상 numkeys 키 [키 ...] [AGGREGATE SUM|MIN|MAX]
WEIGHTS 옵션은 집계를 수행하기 전에 각 컬렉션에 대한 가중치를 설정하는 것입니다. 가중치에 컬렉션의 구성원 점수를 곱하여 새 점수를 얻습니다. . 를 클릭한 다음 집계 계산을 수행합니다.
zunion numkeys key [key ...] [WEIGHTS Weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
2. 교차점
1) zinterstore 명령 형식: zinterstore 대상 numkeys 키 [key … ] [WEIGHTS 가중치] [AGGREGATE SUM|MIN|MAX]
zinterstore 대상 numkeys 키 [key ...] [WEIGHTS 가중치] [AGGREGATE SUM|MIN|MAX]
실행 후 새 컬렉션 멤버를 반환합니다. zinter numkeys key [key ...] [WEIGHTS Weight] [AGGREGATE SUM|MIN|MAX] [WITHSCORES]
위 내용은 Redis 정렬 컬렉션은 지식 포인트 유도를 사용합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!