https://blog.csdn.net/qq_41929714/article/details/126461287
数据结构 | 是否允许重复元素 | 是否有序 | 有序实现方式 |
---|---|---|---|
列表list | 是 | 是 | 索引下标 |
集合set | 否 | 否 | \- |
有序集合zset | 否 | 是 | 分值score |
zset的命令都是前面+z开头的。
# zadd key [NX|XX] [CH] [INCR] score member [score member ...]
# 放入集合多个元素,并给每个元素分配分值,返回集合大小
127.0.0.1:6379> zadd myzset 10 aaa 20 bbb 30 ccc 5 zzz 36 eee
(integer) 5
# zrange key start stop [WITHSCORES]:升序获取有序集合元素
# WITHSCORES意思就是是否展示分值
127.0.0.1:6379> zrange myzset 0 -1
1) "zzz"
2) "aaa"
3) "bbb"
4) "ccc"
5) "eee"
127.0.0.1:6379> zrange myzset 0 -1 withscores
1) "zzz"
2) "5"
3) "aaa"
4) "10"
5) "bbb"
6) "20"
7) "ccc"
8) "30"
9) "eee"
10) "36"
# zrevrange key start stop [WITHSCORES]:降序获取有序集合元素,rev就是reverse(逆转、颠倒)的缩写
# WITHSCORES意思就是是否展示分值
127.0.0.1:6379> zrevrange myzset 0 -1
1) "eee"
2) "ccc"
3) "bbb"
4) "aaa"
5) "zzz"
127.0.0.1:6379> zrevrange myzset 0 -1 withscores
1) "eee"
2) "36"
3) "ccc"
4) "30"
5) "bbb"
6) "20"
7) "aaa"
8) "10"
9) "zzz"
10) "5"
Redis Zrangebyscore 返回有序集合中指定分数区间的成员列表。有序集成员按分数值递增(从小到大)次序排列。
具有相同分数值的成员按字典序来排列(该属性是有序集提供的,不需要额外的计算)。
默认情况下,区间的取值使用闭区间 (小于等于或大于等于),你也可以通过给参数前增加 ( 符号来使用可选的开区间 (小于或大于)。
# zrangebyscore key min max [WITHSCORES] [LIMIT offset count]:随机获取集合的元素,count为随机获取的个数,默认1
# 返回所有符合条件 5 < score <= 30 的
127.0.0.1:6379> ZRANGEBYSCORE myzset (5 30
1) "aaa"
2) "bbb"
3) "ccc"
# 返回所有符合条件 5 < score < 30 的
127.0.0.1:6379> ZRANGEBYSCORE myzset (5 (30
1) "aaa"
2) "bbb"
# LIMIT offset count:分页偏移量,类似SQL中的limit
127.0.0.1:6379> ZRANGEBYSCORE myzset (5 (30 limit 0 1
1) "aaa"