hql 查询条件 set集合_Redis从入门到深入-Sorted_set的value

1. sorted_set 类型

  • 新的存储需求,数据排序有利于数据的有效展示,需要提供一种可以根据自身特征进行排序的方式
  • 需要的存储结构:新的存储模型,可以保存可排序的数据
  • sorted_set类型:在set的存储结构基础上添加可排序字段

43d27ef9cc0c8331fffc36a76a43f715.png

72276bde09d16092a576534c7dad2e52.png

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

2.1 操作

  • 添加数据
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>
  • 获取集合数据总量
zcard <key>
zcount <key> <min> <max>
  • 集合交并操作
zinterstore <destination> <numkeys> <key> [key...]
zunionstore <destination> <numkeys> <key> [key...]

2.2 注意

  • min与max用于限定搜索查询的条件
  • start与stop用于限定查询范围,作用于索引,表示开始和结束索引
  • offset与count用于限定查询范围,作用于查询结果,表示开始位置和数据总量

3. sorted_set 类型数据的扩展操作

  1. 业务场景
  2. 票选广东十大杰出青年,各类综艺选修海选投票
  3. 各类资源网站TOP10(电影,歌曲,文档,电商,游戏等) = 聊天室活跃度统计
  4. 游戏好友亲密度
  5. 解决方案
  6. 获取数据对应的索引(排名)
zrank <key> <member>
zrevrank <key> <member>
  • score值获取与修改
zscore <key> <member>
zincrby <key> <increment> <member>

4. sorted_set 类型数据操作的注意事项

  • score保存的数据存储空间是64位,整数范围long型
  • score保存的数据也可以是一个双精度的double值,基于双精度浮点数的特征,可能会丢失精度,使用时候要慎重
  • sorted_set底层存储还是基于set结构的,因此数据不能重复,如果重复添加相同的数据,scoe值将被反复覆盖,保留最后一次修改的结果

5. sorted_set 类型应用场景

  1. 业务场景
    基础服务+增值服务类网站会设定各类会员的试用,让用户充分体验会员优势。例如观影试用VIP、游戏VIP体验,云盘下载体验VIP,数据查看体验VIP。当VIP体验到期后,如果有效管理此类信息。即便对于正式VIP用户也存在对应的管理方式。 网站会定期开始投票、讨论。限时进行,逾期作废。如何有效管理此类过期信息
  2. 解决方案
  3. 对于基于时间线限定的任务处理,将处理时间记录为score值。利用排序功能区分处理的先后顺序
  4. 记录下一个要处理的时间,当到期后处理对应任务,移除redis中的记录,并记录下一个要处理的时间
  5. 当新任务加入时,判断并更新当前下一个要处理的任务时间
  6. 当提升sorted_set的性能,通常将任务根据特征存储为若干个sorted_set。例如1小时内,1天内,1周内,1月内,季内,年度等。操作时逐级提升,将即将操作的若干个任务纳入到1小时内处理的队列中

6. sorted_set 类型应用场景3

  1. 业务场景

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

  1. 解决方案
  2. 对于带有权重的任务,优先处理权重高的任务,采用score记录权重即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pdm生成java_PowerDesigner通过SQL语句生成PDM文件并将name和comment进行互相转换

本篇文章主要介绍了PowerDesigner通过SQL语句生成PDM文件并将name和comment进行互相转换 超详细过程(图文)&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下1.软件准备软件&#xff1a;Navicat 11.1&#xff0c;Powerdesigner 152.安装步骤第一步&…

python逐步回归筛选变量_Python实现逐步回归(stepwise regression)

逐步回归的基本思想是将变量逐个引入模型&#xff0c;每引入一个解释变量后都要进行F检验&#xff0c;并对已经选入的解释变量逐个进行t检验&#xff0c;当原来引入的解释变量由于后面解释变量的引入变得不再显著时&#xff0c;则将其删除。以确保每次引入新的变量之前回归方程…

java里面如何加入高级的东西_如何成为一名Java高级架构师

近些年来互联网快速发展&#xff0c;现阶段的数据量和高并发的诉求&#xff0c;引起了不少传统的技术人员的力不从心&#xff0c;企业愈发关注到了系统架构的重要性&#xff0c;既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的领导型人物——Java架构师应…

mysql获取最好成绩对应数据的其他项_开源数据同步神器——canal

前言如今大型的IT系统中&#xff0c;都会使用分布式的方式&#xff0c;同时会有非常多的中间件&#xff0c;如redis、消息队列、大数据存储等&#xff0c;但是实际核心的数据存储依然是存储在数据库&#xff0c;作为使用最广泛的数据库&#xff0c;如何将mysql的数据与中间件的…

java怎么使用floor_Java floor() 方法

floor() 方法可对一个数进行下舍入&#xff0c;返回给定参数最大的整数&#xff0c;该整数小于或等给定的参数。语法该方法有以下几种语法格式&#xff1a;double floor(double d)double floor(float f)参数double 或 float 的原生数据类型。返回值返回 double 类型数组&#x…

python外部库是什么_如何使用Portable Python安装外部库?

由于管理员权限,我无法在我的机器上安装Python,但我成功下载/打开了Portable Python.我在Windows 7 64位机器上.我怎样才能使用以前的外部库,比如Numpy或Gmpy&#xff1f;解决方法:easy_install正在尝试从源代码安装. gmpy和gmpy2是C扩展,需要兼容的C编译器和其他库(GMP;以及gm…

java创建目录时带权限_java – 无法在外部存储中创建目录,尽管权限显然设置正确...

我有在我的清单文件中,但是尝试创建一个目录时我失败了Log.d(LOG_STRING, android.os.Environment.getExternalStorageState() );java.io.File folder new java.io.File(Environment.getExternalStorageDirectory() java.io.File.separator "test");boolean succe…

window访问不到linux的activemq_springboot整合开源项目测试拦截接口访问的频率

本节目标本篇文章主要是介绍以下springboot整合开源项目&#xff0c;实现反爬虫接口防刷的demo&#xff0c;额外的介绍一下axios的基本用法&#xff1b;所以本篇文章阅读起来相对轻松。OK&#xff0c;下面开始整合.引入项目依赖cn.keking.project kk-anti-reptile …

java 数据库外键查询_oracle中查询所有外键引用到某张表的记录

其实查找这篇文章 我主要用的sql 是这句 select * from user_cons_columns t where t.constraint_name like FK_CTS_CONT_REINS__CRR;起因&#xff1a;系统测试的时候发现如果某条记录已经被引用了&#xff0c;这个时候删除这条记录会引起数据不一致&#xff0c;系统会报错。…

sql server限制查询条数_18. Django 2.1.7 查询集 QuerySet

上一篇Django 2.1.7 模型 - 条件查询 F对象 Q对象 聚合查询讲述了关于Django模型的介绍F对象、Q对象、聚合查询等功能。不管什么查询&#xff0c;返回的结果都基本是查询集QuerySet&#xff0c;如下&#xff1a;In [16]: MiddlewareInfo.objects.all()Out[16]: 1)>, 2)>,…

python文件传输socket_树莓派采用socket方式文件传输(python)

两个树莓派&#xff0c;在同一个局域网内&#xff0c;传输文件&#xff0c;采用socket方式。client端代码&#xff1a;import socketimport osimport hashlibclient socket.socket() # 生成socket&#xff0c;连接serverip_port ("192.168.137.210",12346) # server…

java 过滤列表_Java 8 Stream过滤列表中列表的值

我有一个看起来如下的对象class MyObject {String type;List subTypes;}是否有可能,给定一个MyObject列表,使用Java 8流来过滤类型和子类型&#xff1f;到目前为止我有myObjects.stream().filter(t -> t.getType().equals(someotherType).collect(Collections.toList());但在…

python实现程序重启_python实现自动重启本程序的方法

#!/usr/local/bin/python#-*- coding: UTF-8 -*-##################################################################### python 自动重启本程序#####################################################################import os,time#def close():# print "程序重启&a…

java调用 restapi 乱码_Java HttpURLConnection模拟请求Rest接口解决中文乱码问题

public staticString PostRequest(String URL,String obj) {String jsonString"";try{//创建连接URL url newURL(URL);HttpURLConnection connection(HttpURLConnection) url.openConnection();connection.setDoOutput(true);connection.setDoInput(true);connectio…

python惰性求值的特点_C#教程之C#函数式编程中的惰性求值详解

https://www.xin3721.com/eschool/python.html惰性求值在开始介绍今天要讲的知识之前&#xff0c;我们想要理解严格求值策略和非严格求值策略之间的区别&#xff0c;这样我们才能够深有体会的明白为什么需要利用这个技术。首先需要说明的是C#语言小部分采用了非严格求值策略&am…

工厂模式java界面_java – 工厂模式动态方法

我正在努力了解工厂模式.如果有很多实现,那么我的工厂模式将会有很多如果还是开关的情况.而且每次我介绍一个新的实现,我应该更改我的工厂代码像下面的例子,如果让我们假设狗鸭正在实施宠物界面,如果许多动物实现宠物界面,我的工厂会很长时间,如果有其他的代码或开关案例,那么明…

ecs 云服务器 管理控制台_阿里云ECS服务器监控资源使用情况

阿里云Ecs服务器运维过程中&#xff0c;无论是Centos系统还是Windows系统&#xff0c;有时候我们需要监控分析最新的服务器资源利用率等运行情况&#xff0c;例如最近3个小时CPU使用率情况、内存使用率、网络流入带宽、网络流出带宽、服务器TCP连接数等数据状况。上述提到的这些…

python创建提示用户输入查询条件_python流程控制练习

‘’’if条件‘’’示例sex ‘female’age19is_beautifulTrueis_successfulTrueheight1.70if sex ‘female’ and age > 18 and age <20 and is_beautiful \and height > 1.6 and height < 1.8 :print(“001”)if is_successful :print(‘ok’)else:print(‘sb’)e…

svg 地图_找地图素材?有这个网站就够了!

文 | 孙宁使用地图类的素材最担心什么&#xff1f;答案是&#xff1a;地图数据的准确性&#xff01;设想&#xff0c;你辛辛苦苦找来的地图素材&#xff0c;却被人发现是一个假的地图&#xff0c;那可是要犯错误滴~今天给大家推荐一个地图网站&#xff0c;完全不用担心这个问题…

hadoop设置java环境_hadoop安装(3)_Linux配置JDK环境

hadoop分布式集群安装的过程中要先给Linux系统配置好JDK环境&#xff0c;因为hadoop是基于Java开发的。所以本文主要介绍如何在centos上安装jdk环境&#xff0c;主要步骤如下&#xff1a;1、去Oracle官网下载Linux版本的jdk&#xff0c;地址如下&#xff1a;笔者下载的是JDK1.8…