有序集合结构
key仍然是一个字符串,value就是一个集合,在有序集合中一个元素又包含了score和value,score用于排序可重复,而value不可以重复。

集合 vs 有序集合
有序集合可以实现很多集合实现不了的功能,同时它的API相对于集合来说时间复杂度是普遍偏高的,因为它需要体现一个有序的概念,所以并不是说集合就毫无用处了。

列表 vs 有序集合

有序集合重要API
基础命令

基础命令演示

高级命令

高级命令演示

实战-排行榜
排行榜功能在很多应用都是普遍存在的,例如音乐排行榜、电影排行榜、文章排行榜、热门视频等等。类似这种场景就可以使用有序集合来实现。
可以使用zadd
去添加元素和初始分数,然后使用zincrby
实现分数的更新,使用zrem
将一些元素删除榜外,使用zrangebyscore
获取一定范围分数的榜单等等。
那么这里最核心的就是分数具体代表什么,例如最新榜单可以使用timeStamp作为分数,销售量可以使用saleCount,关注量使用followCount。然后使用相关的API进行业务操作,也可以对多个集合进行汇总根据一定的规则作为类似综合排序的结果。

查缺补漏
对于一些不太常用的命令或者不太典型的命令进行查缺补漏。

有序集合总结

网友评论