redis-zset常用命令

常用命令
#-----------
# zadd key score member 添加成员
# 和zset为 sorted set,sadd相比 ,每个成员多了一个score,可以方便排序
127.0.0.1:6379> zadd set1 0 a 0 aa 0 aaa 1 b 3 c 2 bb  3 cc
(integer) 7

127.0.0.1:6379> zscore set1 dd
"5"
127.0.0.1:6379> 

#-----------
# zscore key member 查询指定member的score
#-----------
# zrange key start stop 根据成绩和设计的【startIndex,stopIndex】的范围从小到大查询集合,start 和 stop分别代表开始和结束下标的索引。	
# 返回结果优先根据成绩从小到大排列,成绩相同的情况下
# 根据字典顺序表进行排序
# 使用这个命令必须指定最小范围和最大范围
127.0.0.1:6379> zadd set1 0 d 1 dd
(integer) 2
127.0.0.1:6379> zrange set1 0 -1
1) "a"
2) "aa"
3) "aaa"
4) "d"
5) "b"
6) "dd"
7) "bb"
8) "c"
9) "cc"
127.0.0.1:6379> 
#---------------
# zrevrange key start stop 反转排序
# 把zrange key start stop列表结果根据score进行反转
127.0.0.1:6379> zrange set1 0 -1
 1) "a"
 2) "aa"
 3) "aaa"
 4) "d"
 5) "b"
 6) "bb"
 7) "c"
 8) "cc"
 9) "dd"
10) "ccc"
127.0.0.1:6379> zrevrange set1 0 -1
 1) "ccc"
 2) "dd"
 3) "cc"
 4) "c"
 5) "bb"
 6) "b"
 7) "d"
 8) "aaa"
 9) "aa"
10) "a"

#-----------
# zrangebyscore key min max 根据score从小到大查询集合
# min 和 max 分别代表score的最小值和最大值
# 这个命令和上一个命令相比好处使用这个命令的好处是
# 使用这个命令可以使用负无穷(-inf) 和正无穷(+inf)符号
127.0.0.1:6379> zrangebyscore set1 -inf +inf
1) "a"
2) "aa"
3) "aaa"
4) "d"
5) "b"
6) "dd"
7) "bb"
8) "c"
9) "cc"

# zrevrangebyscore key max min
# 根据score倒叙排列
127.0.0.1:6379> zrevrangebyscore set1 +inf -inf
 1) "ccc"
 2) "dd"
 3) "cc"
 4) "c"
 5) "bb"
 6) "b"
 7) "d"
 8) "aaa"
 9) "aa"
10) "a"


#-----------
# 使用范围:分数有相同的集合中
# 参数含义:min代表分数最小的member,max代表分数最大的member
#    min 和 max必须以’[‘或者’(‘开头,[代表闭区间,(代表开区间,
#    可以使用- + 代替最小值和最大值
# 返回结果: 分数相同的member按照字母顺序进行排列
# 使用场景例如:2名学生成绩相同,字典名字靠前的放在前面
127.0.0.1:6379> zrange set1 0 -1
 1) "a"
 2) "aa"
 3) "aaa"
 4) "d"
 5) "b"
 6) "bb"
 7) "c"
 8) "cc"
 9) "dd"
10) "ccc"
127.0.0.1:6379> zrangebylex set1 [a [d
1) "a"
2) "aa"
3) "aaa"
4) "d"
5) "b"
6) "bb"
7) "c"
8) "cc"

#------------
# zrevrangebylex key start stop
# 优先根据score进行倒叙,score相同的根据字典属性倒叙
127.0.0.1:6379> zrevrangebylex set1 [d  [a
 1) "ccc"
 2) "dd"
 3) "cc"
 4) "c"
 5) "bb"
 6) "b"
 7) "d"
 8) "aaa"
 9) "aa"
10) "a"
127.0.0.1:6379> 


#-----------
# zcard key,查看key下的元素个数
127.0.0.1:6379> zcard set1
(integer) 10

#-------------
# zcount set min max ,min代表minScore,max代表maxScore
# 查询score 在 min 和 max之前的member个数
127.0.0.1:6379> zcount set 3 5
(integer) 0
127.0.0.1:6379> zcount set1 3 5
(integer) 3
127.0.0.1:6379> zcount set 10 11
(integer) 0
1127.0.0.1:6379> zcount set1 -inf +inf
(integer) 10


#-------------
# zincrby key increment memmber,给指定成员的score增加 increment
127.0.0.1:6379> zrange set1 0 -1
 1) "a"
 2) "aa"
 3) "aaa"
 4) "d"
 5) "b"
 6) "bb"
 7) "c"
 8) "cc"
 9) "dd"
10) "ccc"
127.0.0.1:6379> zincrby set1 20 a
"20"
127.0.0.1:6379> zrange set1 0 -1
 1) "aa"
 2) "aaa"
 3) "d"
 4) "b"
 5) "bb"
 6) "c"
 7) "cc"
 8) "dd"
 9) "ccc"
10) "a"
127.0.0.1:6379> 


#-------------
# zrem key member[member...]
# 删除指定member,可批量删除
127.0.0.1:6379> zrem set1 a
(integer) 1
127.0.0.1:6379> zrange set1 0 -1
1) "aa"
2) "aaa"
3) "d"
4) "b"
5) "bb"
6) "c"
7) "cc"
8) "dd"
9) "ccc"
127.0.0.1:6379> 

#--------------------
# zpopmin key [count] 删除n个score最小的member
# 如果count不写则默认删除1个
127.0.0.1:6379> zrange set1 0 -1
1) "aa"
2) "aaa"
3) "d"
4) "b"
5) "bb"
6) "c"
7) "cc"
8) "dd"
9) "ccc"
127.0.0.1:6379> zpopmin set1 
1) "aa"
2) "0"
127.0.0.1:6379> zpopmin set1 2
1) "aaa"
2) "0"
3) "d"
4) "0"

# zpopmax key [count] 删除score最大的n个member
127.0.0.1:6379> zpopmax set1 
1) "ccc"
2) "6"

# bzpopmanx key[key ...] timeout
# 阻塞删除key下score最大的1个member
127.0.0.1:6379> bzpopmin set1 20
1) "set1"
2) "b"
3) "1"
127.0.0.1:6379> bzpopmax set1 20
1) "set1"
2) "dd"
3) "5"
127.0.0.1:6379> 


使用场景
  • 成绩排列
  • 工资排列
  • 加权判断
  • 排行榜
    等等涉及排序的场景
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值