慕课网-一站式学习Redis从入门到高可用分布式实践-第2章-API的理解和使用-第2章-zset

zset

1.有序集合的结构

2.集合和有序集合的对比

 

3.列表和有序集合的对比

 

4.API

1)zadd

添加score和element

zadd key score element(可以是多对)

o(logN)

 

实例

user:1:ranking 包含数据 

1  kris

91     mike

200   frank

220   chris

zadd user:1:ranking 225 tom

2)zrem

删除元素

zrem key element(可以是多个)

o(1)

zrem user:1:ranking 225 tom

3)zscore

返回元素的分数

zscore key element

o(1)

zscore user:1:ranking tom

4)zincrby

增加或减少元素的分数

zincrby key increScore element

o(1)

zincrby user:1:ranking 9 mike

5)zcard

返回元素的总个数

zcard user:1:ranking

o(1)

zcard user:1:ranking

 

实例

zadd player:rank 1000 ronaldo 900 messi 800 c-ronaldo 600 kaka
zscore player:rank kaka
zcard player:rank
zrank player:rank ronaldo
zrem player:rank messi
zrange player:rank 0 -1 withscores

  

6)zrange 

返回指定索引范围内的升序元素

zrange key start end [WITHSCORES]

o(log(n)+m)

zrange user:1:ranking 1 3 withscores

7)zrangebyscore 

返回指定分数范围内的升序元素[分值]

zrangebyscore key minScore maxScore [WITHSCORES]

o(log(n)+m)

zrangebyscore user:1:ranking 90 210 withscores

8)zcount 

返回有序集合内在指定分数范围内的个数

zcount key minScore maxScore

o(log(n)+m)

zcount user:1:ranking 200 221

9)zremrangebyrank

删除指定排名内的升序元素

zremrangebyrank key start end

o(log(n)+m)

zremrangebyrank user:1:ranking 1 2

10)zremrangebyscore

删除指定分数内的升序元素

zremrangebyscore key minScore maxScore

o(log(n)+m)

zremrangebyscore user:1:ranking 90 120

 

实例

zadd player:rank 1000 ronaldo 900 messi 800 c-ronaldo 600 kaka
zrange player:rank 0 -1
zcount player:rank 700 901
zrangebyscore player:rank 700 901
zremrangebyrank player:rank 0 1
zrange player:rank 0 -1
zrange player:rank 0 -1 withscores

  

实战-排行榜

5.查漏补缺

1)zrevrank

2)zrevrange

3)zrevrangebyscore

4)zinterstore

5)zunionstore

6.有序集合总结

 

 

posted on 2019-11-22 13:42  herisson_pan  阅读(15)  评论(0)    收藏  举报

导航