Redis中有序列表(ZSet)相关命令

redis语序集合和集合set是一样内部valuestring类型的集合,有序不允许重复元素
但是,zset的每个元素有一个double类型的分数(score).redis正是靠这个分数对元素从小到大排序.
zset中元素唯一但是分数可以重复

zadd

zdd key score value [score2 value2] ...
zset中添加一个后多个元素

127.0.0.1:6379> zadd student 9 zhangsan
(integer) 1

如果元素之前已存在,那么相当于更新分数,那么如果分数也和之前的一样,就相当于什么都不做

查询

zcard

zcard key
获取有序集合内部的成员数

127.0.0.1:6379> zcard student
(integer) 4

zcount

zcount key min max
计算有序集合指定分数区间的成员数

zlexcount

zlexcount key min max
在有序集合中计算指定字典区间的元素数量

zrank

zrank key value
查询值在有序列表中的索引位置

zrange

zrangge key start end
通过索引区间返回该区间的元素

127.0.0.1:6379> zrange zset1 0 5
1) "a"
2) "b"
3) "c"
4) "t"
5) "h"
6) "k"

修改

zincrby

zincrby key increment value
指定元素的分数自增,increment 为增量

删除

zrem

zrem key value [value2] ...
移除有序集合中一个或多个元素

zremrangebyrank

zremrangebyrank key start stop
根据分数排名移除元素

127.0.0.1:6379> zrange zset1 0 5
1) "a"
2) "b"
3) "c"
4) "t"
5) "h"
6) "k"
127.0.0.1:6379> zremrangebyrank zset1 2 3
(integer) 2

zremrangebyscore

zremrangebyscore key min max
根据分数范围去移除元素

原文地址:https://www.cnblogs.com/liangshu/p/12410121.html