redis数据类型之sorted_set
-
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 min max [withscores] [limit]
-
-
条件删除数据
-
zremrangebyrank key start stop
-
zremrangebyscore key min max
-
注意事项:
-
min与max用于限定搜索查询的条件
-
start与stop用于限定查询范围,作用于索引,表示开始和结束索引
-
offset与count用于限定查询范围作用于查询结构,表示开始位置和查询总量
-
-
-
获取集合数据总量
-
zcard key
-
zcount key min max
-
-
集合交、并操作
-
zinterstore destination numkeys key [key....]
-
zunionstore destination numkeys key [key...]
-
-
sorted_set类型数据扩展操作
-
业务场景
-
各类综艺节目海选投票;各类资源网站TOP10;聊天室活跃度统计;游戏好友亲密度
-
业务分析:为所有参与排名的资源建立排序依据
-
解决方案
-
获取数据对应的索引
-
zrank key member
-
zrevrank key member
-
-
score值获取与修改
-
zscore key member
-
zincrby key increment member
-
-
-
redis应用场合:redis应用于计数器组合排序功能对应 排名
-
-
-
soted_set类型数据操作的注意事项
-
score保存的数据存储空间是64位
-
score保存的数据也可以是一个双精度的double,基于双精度浮点数的特征,可能会丢失精度,使用时要慎重
-
sorted_set底层 存储还是基于set结构的,因此数据不能重复,如果重复添加相同的数据,score值将被反复覆盖,保留最后一次修改的结果
-
-
redis应用
-
redis应用于定时任务执行顺序管理或任务过期管理·
-
-