Redis基本数据类型Zset(有序集合) API

90 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情

Zset(有序集合) 在set基础上增加了一个值可以进行排序

zet语法:set k1 v1

zset语法:zset k1 score v1

zset的命令都是z开头的

zset的使用场景:

1 排序,存储一组表,表排序

2 普通消息,1,重要消息,2普通消息

3 排行榜应用 Top N

1 zadd(zset)(k1)(v1) (k2)(v2)给zset添加多个元素

127.0.0.1:6379[2]> zadd myzset 1 one #给myzset这个zset添加元素

(integer) 1

127.0.0.1:6379[2]> zadd myzset 2 two 3 three #给myzset这个zset添加多个元素

(integer) 2

127.0.0.1:6379[2]>

2 zrange(zset)(index)(index)#查看zset中的元素 如果是0 -1这种区级的话就是查询全部的意思

127.0.0.1:6379[2]> zrange myzset 0 -1 #查看myzset的全部元素

1) "one"

2) "two"

3) "three"

3 zrangebyscore(zset)(min)(max)(withscore显示信息)用来进行正序或者倒叙排序并追加显示信息

-inf +inf就是负无穷到正无穷

127.0.0.1:6379[2]> zadd sal 100 weiyihe 200 yangyuting 300 weiyiming #新建一个工资的zset集合 添加三个用户数据 意味每个人的薪水

(integer) 3

127.0.0.1:6379[2]> zrangebyscore sal -inf +inf #查看这个zset的负无穷到正无穷也就是全部数据 显示全部的用户从小到大排序

1) "weiyihe"

2) "yangyuting"

3) "weiyiming"

127.0.0.1:6379[2]> zrangebyscore sal -inf +inf withscores #查看这个zset的负无穷到正无穷也就是全部数据,加上工资的参数

1) "weiyihe"

2) "100"

3) "yangyuting"

4) "200"

5) "weiyiming"

6) "300"

127.0.0.1:6379[2]> zrangebyscore sal -inf 100 #查看工资小于100的降序排列

1) "weiyihe"

127.0.0.1:6379[2]> zrangebyscore sal -inf 100 withscores #查看工资小于100的员工信息降序排序,外加工资 并且附带工资

1) "weiyihe"

2) "100"

127.0.0.1:6379[2]> zrangebyscore sal -inf 200 #查看工资小于200的员工信息降序排序

1) "weiyihe"

2) "yangyuting"

127.0.0.1:6379[2]> zrangebyscore sal -inf 300 #查看工资小于300的员工信息升序排序

1) "weiyihe"

4 zrem(zset)(key)根据指定的key从zset中删除

127.0.0.1:6379[2]> zrange sal  0  -1 #查看全部的sal的元素

1) "weiyihe"

2) "yangyuting"

3) "weiyiming"

4) "zhangsan"

127.0.0.1:6379[2]> zrem sal zhangsan  #删除zhangsan这个key

(integer) 1

127.0.0.1:6379[2]> zrange sal  0  -1 #查看全部的元素

1) "weiyihe"

2) "yangyuting"

3) "weiyiming"

5 zcard(zset)查看zset中元素的数量

127.0.0.1:6379[2]> zcard sal #查看zset中元素的个数

(integer) 3

6 zrevrange(zset)(max)(min)从大到小进行排序

127.0.0.1:6379[2]> zrevrange sal 0 -1 #从大到小进行排序

1) "weiyiming"

2) "yangyuting"

3) "weiyihe"

7 zcount (zset)(start)(sotp)获取指定区间的成员数量

127.0.0.1:6379[2]> zadd myzset 1 a 2 b 3 c #一次性设置三个值

(integer) 3

127.0.0.1:6379[2]> zcount myzset 1 1 #查看取件1-1直接有几个值

(integer) 1

127.0.0.1:6379[2]> zcount myzset 1 2 #查看取件1-2直接有几个值

(integer) 2

127.0.0.1:6379[2]> zcount myzset 1 3 #查看取件1-3直接有几个值

(integer) 3