redis数据类型之sorted_set

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应用于定时任务执行顺序管理或任务过期管理·

    • redis应用于即时任务/消息队列执行管理

posted @ 2020-05-18 22:25  IT特工  阅读(388)  评论(0编辑  收藏  举报