• Redis入门到精通(六)——sorted_set基本操作、sorted_set扩展操作(实现排行榜功能)、sorted_set注意事项、sorted_set应用场景(定时任务执行顺序、消息任务的权重设定)


    sorted_set类型结构:在set类型的基础上进行排序

    一、sorted_set类型数据的基本操作

    添加数据
    zadd key score1 member1 [score2 member2]
    
    获取全部数据
    zrange key start stop [withscores]         #如果不写withscores就只会显示member,默认是升序排名
    zrevrange key start stop [withscores]    #降序排名
    
    删除数据
    zrem key member [member]

    按条件获取数据
    zrangebyscore key min max [withscores] [limit]   #min和max是填写score的值,表示范围,limit是限制显示几条,带索引
    zrevrangebyscore key max min [withscores]
    
    条件删除数据
    zremrangebyrank key start stop      #按索引删除
    zremrangebyscore key min max     #按score值删除
    注意:
    1.min和max用于限定搜索查询的条件
    2.start和stop用于限定查询范围,作用于索引,表示开始和结束索引
    3.limit的offset和count用于限定查询范围,作用于查询结果,表示开始位置和数据总量
    获取集合数据总数
    zcard key    
    zcount key min max     #查询范围内数据量有多少
    
    集合交、并操作
    zinterstore destination numkeys key      #numkeys是key的个数,把共同存在的key值相加
    zunionstore destination numkeys key      

    二、sorted_set类型数据的扩展操作

    业务场景:实现排行榜,排名就是索引位置,redis应用于计数器组合排序功能对应的排名

    获取数据对应的索引(排名)
    zrank key member             #获得的索引是从0开始的
    zrevrank key member
    
    score值获取与修改
    zscore key member        #获取对应的score值
    zincrby key increment member     #修对应的score值,increment是修改的数字

    三、sorted_set类型数据操作的注意事项

    注意事项

    四、sorted_set类型应用场景

    1.业务场景:开通vip管理过期信息,redis应用于定时任务执行顺序管理或任务过期管理

    解决方案

    注意:不能把所有的信息都加入到一个sorted_set中,可以分别加入1小时内、1天内的、1周内的、1月内的等等处理队列中

    2.业务场景:任务/消息权重设定应用

    处理任务队列或消息队列时,采用list类型数据来处理。对于高优先级的任务要保障对其优先处理,实现任务权重管理,就要使用到sorted_set来处理

    解决方案:

    对于带有权重的任务,优先处理权重高的任务,采用score记录权重即可。

  • 相关阅读:
    docker 保存和导入镜像
    HBase01
    ES
    基于TLS证书手动部署kubernetes集群(上)
    Django Rest Framework源码剖析(七)-----分页
    Django Rest Framework源码剖析(六)-----序列化(serializers)
    Django Rest Framework源码剖析(五)-----解析器
    Django Rest Framework源码剖析(四)-----API版本
    Django Rest Framework源码剖析(三)-----频率控制
    Django Rest Framework源码剖析(二)-----权限
  • 原文地址:https://www.cnblogs.com/wangcuican/p/12868167.html
Copyright © 2020-2023  润新知