学习了有序集合后的命令后在此记录一下:
ZSet 和 Set 的区别 :因为在ZSet中为每个值指定了一个double类型的分数,利用这个指定的分数来进行排序
1. 新增元素( zadd key score value [ score2 value2 …])
> zadd zkey 1.0 华为 # 1.0为新增的这个value值的double型分数
(integer) 1 # 返回成功新增的元素个数
> zadd zkey 3.0 荣耀 5.0 小米 7.0 VIVO
(integer) 3
2.查询某个value值对应的score分数( zscore key value )
> zscore zkey VIVO
7.0
3. 查询获取元素( zrange key start stop [withscores] / zrevrange key start stop / zrangebyscore key min maxn [ limit offset num ] )
-
zrange命令根据下标获取元素,即:先进行升序排序后再获取元素,元素的第一个值下标从0开始,最后一个值下标从-1开始;withscores作用是将score分数和value值全部返回;
-
zrevrange命令是根据下标倒序获取元素,即:先进行降序排序后再获取元素;
-
zrangebyscore命令是根据指定的value的分数范围来获取元素;limit 作用类似对元素进行分页;
> zrange zkey 0 -1 1) "华为" 2) "荣耀" 3) "小米" 4) "VIVO" > zrevrange zkey 0 -1 1) "VIVO" 2) "小米" 3) "荣耀" 4) "华为" > zrangebyscore zkey 5 10 1) "小米" 2) "VIVO"
4. 获取value值的下标( zrank key value / zrevrank key value)
-
zrank命令正序获取元素下标值,即:先进行升序排序后再获取元素下标
-
zrevrank 命令倒序获取元素下标值,即:先进行降序排序后再获取元素下标
> zrank zkey 小米 # 结合上面的zrange命令查看元素的位置 2 > zrevrank zkey 小米 # 结合上面的zrevrange命令查看元素的位置 1
5. 删除元素( zrem key value / zremrangebyrank key start stop / zremrangebyscore key min max )
-
zrem 命令根据指定的value值删除该元素
-
zremrangebyrank 命令根据指定的元素下标值范围删除元素
-
zremrangebyscore 命令根据指定的元素score分数范围删除元素
> zrem zkey VIVO # 删除一个元素 1 # 返回删除元素的个数 > zrange zkey 0 -1 1) "华为" 2) "荣耀" 3) "小米" > zremrangebyrank zkey 0 2 (integer) 3 > zadd zkey 3.0 荣耀 5.0 小米 7.0 VIVO 15 魅族 (integer) 4 > zrange zkey 0 -1 withscores 1) "荣耀" 2) 3.0 3) "小米" 4) 5.0 5) "VIVO" 6) 7.0 7) "魅族" 8) 15.0 > zremrangebyscore zkey 5 20 3
6. 统计元素个数 ( zcard key / zcount key min max)
-
zcard 命令是统计某个集合中元素总个数
-
zcount 命令是统计指定的分数范围内的元素个数
> zcount zkey 0 5 # 统计value值对应的score分数值在0~5之间的元素个数 1 > zcard zkey # 统计某个集合中value的总个数 1