首页 > 数据库 > NoSQL > redis命令之-sortedset有序集合

|
zadd zcard |
ZADD key score member [[score member] [score member] ...]
将一个或多个
如果某个
如果
当
|
|
|
zrang zrevrang(逆序) |
ZRANGE key start stop [WITHSCORES]
返回有序集
其中成员的位置按
具有相同
如果你需要成员按
下标参数
start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。
你也可以使用负数下标,以
-1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
超出范围的下标并不会引起错误。
另一方面,假如
stop 参数的值比有序集的最大下标还要大,那么 Redis 将 stop 当作最大下标来处理。
可以通过使用
WITHSCORES 选项,来让成员和它的 score 值一并返回,返回列表以 value1,score1, ..., valueN,scoreN 的格式表示。
客户端库可能会返回一些更复杂的数据类型,比如数组、元组等。
|
|
| zcount |
ZCOUNT key min max
返回有序集 |
127.0.0.1:6379> ZRANGE page_rank 0 -1 WITHSCORES 1) "bing.com" 2) "6" 3) "baidu.com" 4) "9" 5) "google.com" 6) "10" 127.0.0.1:6379> zcount page_rank 6 10 (integer) 3 127.0.0.1:6379> zcount page_rank 8 10 (integer) 2 |
| zincrby |
ZINCRBY key increment member
为有序集
可以通过传递一个负数值
当
当
|
127.0.0.1:6379> zincrby page_rank 10 google.com "20" 127.0.0.1:6379> zscore page_rank google.com "20" |
| zscore | 查看摸个元素的score值 | zscore key value |
|
zrangbyscore |
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]
返回有序集
具有相同
可选的
可选的
WITHSCORES 参数决定结果集是单单返回有序集的成员,还是将有序集成员及其 score 值一起返回
|
127.0.0.1:6379> zrange salary 0 -1 withscores 1) "jack" 2) "2500" 3) "tom" 4) "5000" 5) "peter" 6) "12000" 127.0.0.1:6379> zrangebyscore salary -inf +inf withscores 1) "jack" 2) "2500" 3) "tom" 4) "5000" 5) "peter" 6) "12000" 127.0.0.1:6379> zrangebyscore salary -inf 5000 withscores ---小于5000 1) "jack" 2) "2500" 3) "tom" 4) "5000" 127.0.0.1:6379> zrangebyscore salary 2499 4999 withscores ---2499到4999之间 1) "jack" 2) "2500" 127.0.0.1:6379> zrangebyscore salary 4999 +inf withscores -----大于4999 1) "tom" 2) "5000" 3) "peter" 4) "12000" |
| zrank |
ZRANK key member
返回有序集
排名以
使用 ZREVRANK 命令可以获得成员按 |
127.0.0.1:6379> zrank salary peter (integer) 2 127.0.0.1:6379> zrank salary tom (integer) 1 127.0.0.1:6379> zrank salary jack (integer) 0 |
|
ZREVRANK |
与zrank相反 |
127.0.0.1:6379> ZREVRANK salary peter (integer) 0 127.0.0.1:6379> ZREVRANK salary tom (integer) 1 127.0.0.1:6379> ZREVRANK salary jack (integer) 2 |
| zrem | 移除元素 |
127.0.0.1:6379> zrem page_rank google.com (integer) 1 |
| zremrangebyrank |
ZREMRANGEBYRANK key start stop
移除有序集
区间分别以下标参数
下标参数
start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。
你也可以使用负数下标,以
-1 表示最后一个成员, -2 表示倒数第二个成员,以此类推。
|
127.0.0.1:6379> zrangebyscore salary -inf +inf withscores 1) "jack" 2) "2000" 3) "peter" 4) "3500" 5) "tom" 6) "5000" 127.0.0.1:6379> zremrangebyrank salary 0 1 --删除排名前两名的 (integer) 2 127.0.0.1:6379> zrangebyscore salary -inf +inf withscores 1) "tom" 2) "5000" |
| zremrangbyscore | 和上面的意义一样,异曲同工 |
127.0.0.1:6379> zrangebyscore salary -inf +inf withscores 1) "jack" 2) "2000" 3) "peter" 4) "3500" 5) "tom" 6) "5000" 127.0.0.1:6379> zremrangebyscore salary 1500 2500 ---删除1500-2500的 (integer) 1 127.0.0.1:6379> zrangebyscore salary -inf +inf withscores 1) "peter" 2) "3500" 3) "tom" 4) "5000" |
| zrevrangebyscore | 与zrangebyscore就是逆序 |
127.0.0.1:6379> zrevrangebyscore salary +inf -inf withscores 1) "tom" 2) "5000" 3) "peter" 4) "3500" |
| zunionstore |
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的并集,其中给定
默认情况下,结果集中某个成员的 WEIGHTS
使用
如果没有指定 AGGREGATE
使用
默认使用的参数 |
127.0.0.1:6379> zrangebyscore manager -inf +inf withscores 1) "herry" 2) "2000" 3) "mary" 4) "3500" 5) "bob" 6) "4000" 127.0.0.1:6379> zrangebyscore programmer -inf +inf withscores 1) "peter" 2) "2000" 3) "jack" 4) "3500" 5) "tom" 6) "5000" 127.0.0.1:6379> zunionstore newset 2 programmer manager weights 1 3 (integer) 6 ----1是programmer的乘法因子,3是manager的乘法因子 127.0.0.1:6379> zrange newset 0 -1 withscores 1) "peter" 2) "2000" 3) "jack" 4) "3500" 5) "tom" 6) "5000" 7) "herry" 8) "6000" 9) "mary" 10) "10500" 11) "bob" 12) "12000" |
|
zinterstore (注意:新的score是集合的和) |
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
计算给定的一个或多个有序集的交集,其中给定
默认情况下,结果集中某个成员的
关于 |
127.0.0.1:6379> zrange mid_test 0 -1 withscores 1) "Han Meimei" 2) "70" 3) "Li Lei" 4) "70" 5) "Tom" 6) "99.5" 127.0.0.1:6379> zrange fin_test 0 -1 withscores 1) "Han Meimei" 2) "75" 3) "Li Lei" 4) "88" 5) "Tom" 6) "99.5" 127.0.0.1:6379> zinterstore newtest 2 mid_test fin_test (integer) 3 127.0.0.1:6379> zrange newtest 0 -1 withscores 1) "Han Meimei" 2) "145" 3) "Li Lei" 4) "158" 5) "Tom" 6) "199" |
|
ZRANGEBYLEX |
ZRANGEBYLEX key min max [LIMIT offset count]
当有序集合的所有成员都具有相同的分值时, 有序集合的元素会根据成员的字典序(lexicographical ordering)来进行排序, 而这个命令则可以返回给定的有序集合键 |
127.0.0.1:6379> zrange myzset 0 -1 withscores 1) "a" 2) "0" 3) "b" 4) "0" 5) "c" 6) "0" 7) "d" 8) "0" 9) "e" 10) "0" 11) "f" 12) "0" 13) "g" 14) "0" 127.0.0.1:6379> zrangebylex myzset [a (g 1) "a" 2) "b" 3) "c" 4) "d" 5) "e" 6) "f" |
| zlexcount |
ZLEXCOUNT key min max
对于一个所有成员的分值都相同的有序集合键
这个命令的 |
zlexcount myzset [a [g |
|
ZREMRANGEBYLEX |
ZREMRANGEBYLEX key min max
对于一个所有成员的分值都相同的有序集合键
这个命令的 |
|
|
|
|
|
|
|
|
|
|
|
|
|
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29096438/viewspace-1793195/ ,如需转载,请注明出处,否则将追究法律责任。