sorted_set类型
- 新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
- 需要的存储结构:新的存储模型,可以保存可排序的数据
- sorted_set类型:在set的存储结构基础上添加可排序字段
sorted_set 类型数据的基本操作
- 添加数据
zadd key score1 member1 [score2 member2]
- 获取全部数据
//升序排列
zrange key start stop [WITHSCORES]
//降序排列
zrevrange key start stop [WITHSCORES]
- 删除数据
zrem key member [member ...]
- 按条件获取数据
zrangebyscore key min max [WITHSCORES] [LIMIT]
zrevrangebyscore key max min [WITHSCORES]
- 按条件删除数据
//根据索引删除
zremrangebyrank key start stop
//根据score删除
zremrangebyscore key min max
- 获取集合数据总量
zcard key
zcount key min max
- 集合交、并操作
//numkeys表示要对几个集合操作,写多少后面就要接多少集合
zinterstore destination numkeys key [key ...]
zunionstore destination numkeys key [key ...]
sorted_set 类型数据的扩展操作
业务场景
各种需要排名的活动,比如投票等……
解决方案
- 获取数据对应的索引(排名)
zrank key member
zrevrank key member
- score值获取与修改
zscore key member
zincrby key increment member
sorted_set 类型数据操作的注意事项
- score保存的数据存储空间是64位,如果是整数范围是-9007199254740992~9007199254740992
- score保存的数据也可以是一个双精度的double值,基于双精度浮点数的特征,可能会丢失精度,使用时候要慎重
- sorted_set 底层存储还是基于set结构的,因此数据不能重复,如果重复添加相同的数据,score值将被反复覆盖,保留最后一次修改的结果