目录

一. sorted_set数据类型的介绍

二.sorted_set数据类型的基本操作

三.sorted_set实现排行榜

四.sorted_set类型的应用场景(一)

五.sorted_set类型应用场景(二)

一. sorted_set数据类型的介绍

新的存储需求:数据排序有利于数据的有效展示,需要根据一种可以根据自身特征的排序方式

sorted_set数据----支持排序

需要的存储结构:新的存储模型,可以保存可排序的数据

sorted_set类型:在set的存储结构基础上添加可排序的字段

二.sorted_set数据类型的基本操作

1.添加数据

zadd  key  score1  member1  score2 member2

2.获取全部数据

zrange  key start   stop     [withscores]          展示权限 正向操作 由小到大

zrevrange  key start stop   [withscores]           展示权限 反向操作 由大到小

3.删除数据

zrem key  memeber1 [memeber2]

4.sorted_set的常用操作

(1)按条件操作数据

zrangebyscore key min max [withscore] [limit] 从score 的一个范围到另一个范围 正序

zrevrangebyscore key max  min [withscore] [limit] 从score 的一个范围到另一个范围  倒叙

(2) 按条件删除数据

zremrangebyrank   key  start stop  按索引删除

zremrangebyscore key  min max 按分数权限删除

注意:

min与max用于限定搜索查询的条件

start与stop用于限定查询范围,作用于索引,表示开始和结束的索引

offset和count用于限定查询范围,作用于查询结果,表示开始位置和数据总量

5.获取集合数据总量

zcard key

zcount key  min  max 查看score数据范围里有多少个数据

6.集合交并操作

zinterstore  destination numkeys key [key ...]  交集

zunionstore  destination numkeys  key1 [key ...]  并集

求交并集会将score权值进行求和操作

三.sorted_set实现排行榜

排序的问题

业务场景:

为所有排名的资源建立排序依据

解决方案:

获取数据对应的索引(排名)

zrank key member

zrevrank key member

score 值获取与修改

zscore  key member

zincrby  key  increment member

tips13:

redis应用于计数器组合排序功能对应的排名

sorted_set类型

1.score 保存的数据存储空间为64位,整数范围是  -9007199254740992~9007199254740992

2.score保存的数据也可以是一个双精度的doubbo值,基于双精度浮点数的特征,但可能会丢失精度

3.sorted_set底层存储还是基于set结构的,因此数据不能重复,如果重复添加相同的数据,score值将被反复覆盖,保留最后一次修改的结果

四.sorted_set类型的应用场景(一)

业务场景

1.vip体验,网站定期开启投票讨论限时进行 sorted_set有效管理此类信息

解决方案

1.对于基于时间线限定的任务处理,将处理时间记录为score值,利用排序功能区分处理的前后顺序

2.记录下一个要处理的时间,当到期后处理对应任务,移除redis中的记录,并记录下一个要处理的时间

3.当新任务加入时,判定并更新当前下一个要处理的任务时间

4.为了提升sorted_set性能,通常将任务根据特征存储成若干个sorted_set,例如将1小时内,1天内,1周内,一月内,季度,年度等,操作的若干任务都纳入到1小时内处理的队列中

tips14:

redis应用于定时任务执行顺序管理和任务过期管理

五.sorted_set类型应用场景(二)

业务场景

任务/消息权重设定应用

当任务或者消息待处理,形成任务队列或者消息队列时,对于高优先级的任务要保障对其优先应用,如何实现任务权重管理,延时队列

解决方案:

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

多条件任务权重设定

如果权重条件过多,需要对排序score值,进行处理,保障score值能够兼容2个或多个条件,例如

1.外贸订单优于国内订单,总裁订单优于员工订单

2.因score长度受限,需对数据进行截断处理,尤其是时间设置小时或分钟级可(折算后)

3.先设定订单类被,后设定订单发起角色类别,整个score长度必须是统一的,不足位补0,第一道排序规则首位不得为0

例如 外贸101  国内102 经理 004 员工 008

员工下的外贸单为 101008(小)

经理下的国内单为 102004(大)

tips15:

redis应用定时任务/消息队列定时管理

redis 学习笔记(六) sorted_set数据类型相关推荐

  1. Redis学习笔记(五)——持久化及redis.conf配置文件叙述

    对于日常使用来说,学习完SpringBoot集成Redis就够我们工作中使用了,但是既然学习了,我们就学习一些Redis的配置及概念,使我们可以更深层次的理解Redis,以及增强我们的面试成功概率,接 ...

  2. Redis学习笔记 - 数据类型与API(1)Key

    Redis学习笔记 - 数据类型与API(1)Key Key相关命令 1. 常用命令 命令 含义 时间复杂度 keys 查找所有符合给定模式 pattern 的 key O(N), N 为数据库中 k ...

  3. StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用

    StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 原文: StackExchange.Redis学习笔记(二) Redis查询 五种数据类型的应用 Connec ...

  4. Redis学习笔记(一) 数据类型事务异常Jredis

    Redis学习笔记(一) NoSql概述 Nosql四大分类 Redis入门 简介 Windows安装 基础使用 问题 Redis4.0之前为什么是单线程 单线程为什么这么快 Redis4.0后的多线 ...

  5. Redis学习笔记(B站狂神说)(自己总结方便复习)

    Redis学习笔记B站狂神说 redis: 非关系型数据库 一.NoSQL概述 1.为什么要用Nosql 1.单机Mysql的年代 思考一下,这种情况下:整个网站的瓶颈是什么? 1.数据量如果太大,一 ...

  6. Redis(学习笔记)

    Redis学习笔记 1.NoSQL数据库 1.1解决的问题 1.1.1解决CPU及内存压力 1.1.2解决IO压力 1.2NoSQL数据库概述 1.2.1什么是NoSQL数据库 1.2.2适用与不适用 ...

  7. Redis学习笔记①基础篇_Redis快速入门

    若文章内容或图片失效,请留言反馈.部分素材来自网络,若不小心影响到您的利益,请联系博主删除. 资料链接:https://pan.baidu.com/s/1189u6u4icQYHg_9_7ovWmA( ...

  8. Redis学习笔记——SpringDataRedis的使用

    与Spring集成 我需要哪些jar包? <dependency><groupId>org.springframework.data</groupId><ar ...

  9. Redis学习笔记1-理论篇

    目录 1,Redis 数据类型的底层结构 1.1,Redis 中的数据类型 1.2,全局哈希表 1.3,数据类型的底层结构 1.4,哈希冲突 1.5,rehash 操作 2,Redis 的 IO 模型 ...

  10. Redis学习笔记(八)redis之lua脚本学习

    redis系列文章目录 使用spring-data-redis实现incr自增 Redis 利用Hash存储节约内存 Redis学习笔记(九)redis实现时时直播列表缓存,支持分页[热点数据存储] ...

最新文章

  1. html css发展前景,网页设计的发展趋势
  2. linux 安装ftp下载,LINUX FTP安装与配置
  3. [css] 你有用过clip-path吗?说说你对它的理解和它都有哪些运用场景?
  4. 【Pytorch神经网络理论篇】 05 Module类的使用方法+参数Parameters类+定义训练模型的步骤与方法
  5. python自动输入账号密码_Python如何基于selenium实现自动登录博客园
  6. ES6 深拷贝_你别自以为是:ES6误区 之 Object.assign()、const
  7. 用GAN炼制长生不老药,这么玄幻的公司竟然能拿到药企投资
  8. oracle日期00开头,【原】Oracle中产生 “0000-00-00”格式的日期
  9. 使用python原生态的min和max函数实现升序排序和降序排序
  10. 【元胞自动机】基于matlab元胞自动机模拟SEIR传播模型【含Matlab源码 2156期】
  11. 基于Labview与单片机的多通道温度采集系统设计
  12. linux内核将新驱动添加到menuconfig菜单
  13. coursera 助学金申请模版
  14. 【雅思大作文考官范文】——第十一篇:'homework' essay
  15. Self-Supervised Learning 自监督学习中Pretext task的理解
  16. 免密钥登录脚本(转载)
  17. vant框架van-field
  18. 看考研视频如何屏蔽键盘(锁定键盘)
  19. 服务器容器化-docker(全)
  20. 像李云迪那样爱 IT界那些“情”

热门文章

  1. matlab 调制识别,调制方式识别仿真
  2. 华为hwics格式产品文档打开方式
  3. RHCSA红帽认证考试题库--上午考试题
  4. colorui 使用iconfont图标
  5. 计算机辅助设计主要学什么,计算机辅助设计教学大纲
  6. 计算机大赛获奖团队采访,坚持勤奋铸就无悔青春——全国大学生数学建模大赛一等奖获奖者专访...
  7. 初期学习K60遇到的常见问题及解决办法
  8. 【Luat-air105】8.1 camera拍照
  9. 【perl脚本】单行循环正则匹配
  10. python代码怎么保存为pdf_python把ipynb文件转换成pdf文件过程详解