一、sorted_set 类型
1.新的存储需求:数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
2.需要的存储结构:新的存储模型,可以保存可排序的数据
3.sorted_set类型:在set的存储结构基础上添加可排序字段
score为该有序集合定义的排序规则
二、sorted_set 类型数据的基本操作
1.添加数据
zadd key score1(排序字段) member1(值) [score2 member2]
2.获取全部数据
zrange key start stop [WITHSCORES] ------------ 升序
zrevrange key start stop [WITHSCORES] ------------降序
例:scores表示分数字段
zs、ls、ww、zl分别为四个学生
中间数据为分数即排序字段
3.删除数据
zrem key member [member ...]
4.按条件获取数据
zrangebyscore key min max [WITHSCORES] [LIMIT] 升序
zrevrangebyscore key max min [WITHSCORES] 降序
其中limit的用法和mysql一样做限制操作,50开始到99的前三位:
5.条件删除数据
zremrangebyrank key start stop
zremrangebyscore key min max
注意:
min与max用于限定搜索查询的条件
start与stop用于限定查询范围,作用于索引,表示开始和结束索引
offset与count用于限定查询范围,作用于查询结果,表示开始位置和数据总量
6.获取集合数据总量
zcard key
zcount key min max
7.集合交、并操作
zinterstore destination numkeys(合并多少个) key [key ...]
zunionstore destination numkeys key [key ...]
三、sorted_set 类型数据的扩展操作
1.获取数据对应的索引(排名)
zrank key member 小到大、少到多
zrevrank key member 大到小、多到少
2.score值获取与修改
zscore key member
zincrby key increment(规定多少数值) member
例:aa、bb、cc为三种电影,数值代表好评点赞数
redis 应用于计数器组合排序功能对应的排名
四、sorted_set 类型数据操作的注意事项
1. score保存的数据存储空间是64位,如果是整数范是-9007199254740992~9007199254740992
2. score保存的数据也可以是一个双精度的double值,基于双精度浮点数的特征,可能会丢失精度,使用时候要慎重
3.sorted_set 底层存储还是基于set结构的,因此数据不能重复,如果重复添加相同的数据,score值将被反 复覆盖,保留最后一次修改的结果