Redis之zset类型

文章目录

  • Redis之zset类型
  • 1. 添加元素/获取集合中元素的数量
  • 2. 按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素
  • 3. 获取元素的分数
  • 4. 删除元素
  • 5. 获取指定分数范围的元素
  • 6. 增加某个元素的分数
  • 7. 获得指定分数范围内的元素个数
  • 8. 获取元素的排名
  • 9. 按照排名范围内删除元素
  • 10. 应用场景
    • 10.1 商品销量排名
    • 10.2 抖音热搜

Redis之zset类型

在这里插入图片描述

1. 添加元素/获取集合中元素的数量

添加元素:ZADD key score member [score member …]
获取集合中元素的数量:ZCARD key

127.0.0.1:6379> zadd z1 100 apple 200 banana
(integer) 2
127.0.0.1:6379> zcard z1
(integer) 2

2. 按照元素分数从小到大的顺序返回索引从start到stop之间的所有元素

ZRANGE key start stop [WITHSCORES]

127.0.0.1:6379> zrange z1 0 -1
1) "apple"
2) "banana"

3. 获取元素的分数

ZSCORE key member

127.0.0.1:6379> zscore z1 apple
"100"
127.0.0.1:6379> zscore z1 banana
"200"

4. 删除元素

ZREM key member [member …]

127.0.0.1:6379> zrem z1 banana
(integer) 1
127.0.0.1:6379> zcard z1
(integer) 1
127.0.0.1:6379> zrange z1 0 -1
1) "apple"

5. 获取指定分数范围的元素

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

127.0.0.1:6379> zadd z1 200 banana 300 pear 400 peach
(integer) 3
127.0.0.1:6379> zcard z1
(integer) 4
127.0.0.1:6379> zrangebyscore z1 200 400
1) "banana"
2) "pear"
3) "peach"
127.0.0.1:6379> zrangebyscore z1 100 300
1) "apple"
2) "banana"
3) "pear"

6. 增加某个元素的分数

ZINCRBY key increment member

127.0.0.1:6379> zincrby z1 50 apple
"150"
127.0.0.1:6379> zscore z1 apple
"150"

7. 获得指定分数范围内的元素个数

ZCOUNT key min max

127.0.0.1:6379> zcount z1 200 400
(integer) 3
127.0.0.1:6379> zcount z1 100 400
(integer) 4

8. 获取元素的排名

从小到大:ZRANK key member
从大到小:ZREVRANK key member

127.0.0.1:6379> zrank z1 apple
(integer) 0
127.0.0.1:6379> zrank z1 peach
(integer) 3
127.0.0.1:6379> zrevrank z1 peach
(integer) 0
127.0.0.1:6379> zrevrank z1 apple
(integer) 3

9. 按照排名范围内删除元素

ZREMRANGEBYRANK key start stop

127.0.0.1:6379> zremrangebyrank z1 0 -1
(integer) 4
127.0.0.1:6379> zcard z1
(integer) 0
127.0.0.1:6379> zrange z1 0 -1
(empty list or set)

10. 应用场景

10.1 商品销量排名

定义商品销量排行榜(sorted set集合),key为goods:sellsort,分数为商品销售数量。
商品编号1001销量9,1002销量12,1003销量15…
zadd goods:sellsort 9 1001 12 1002 15 1003 18 1004 21 1005 16 1006
有一个客户又买了5件商品1001:zincrby goods:sellsort 5 1001
商品销量由低到高销量前10名:zrange goods:sellsort 0 10 withscores
商品销量由高到低销量前10名:zrevrange goods:sellsort 0 10 withscores

127.0.0.1:6379> zadd goods:sellsort 9 1001 12 1002 15 1003 18 1004 21 1005 16 1006
(integer) 6
127.0.0.1:6379> zincrby goods:sellsort 5 1001
"14"
127.0.0.1:6379> zrange goods:sellsort 0 10 withscores1) "1002"2) "12"3) "1001"4) "14"5) "1003"6) "15"7) "1006"8) "16"9) "1004"
10) "18"
11) "1005"
12) "21"
127.0.0.1:6379> zrevrange goods:sellsort 0 10 withscores1) "1005"2) "21"3) "1004"4) "18"5) "1006"6) "16"7) "1003"8) "15"9) "1001"
10) "14"
11) "1002"
12) "12"
127.0.0.1:6379> zrevrange goods:sellsort 0 3 withscores
1) "1005"
2) "21"
3) "1004"
4) "18"
5) "1006"
6) "16"
7) "1003"
8) "15"

10.2 抖音热搜

点击视频一次访问次数加1:zincrby hotsearch:20230927 1 movie1
造数据movie1 11次,movie2 10次,movie3 18次
对访问次数又高到底显示前10名:zrevrange hotsearch:20230927 0 9 withscores

127.0.0.1:6379> zincrby hotsearch:20230927 1 movie1
"1"
127.0.0.1:6379> zincrby hotsearch:20230927 10 movie1
"11"
127.0.0.1:6379> zincrby hotsearch:20230927 10 movie2
"10"
127.0.0.1:6379> zincrby hotsearch:20230927 18 movie3
"18"
127.0.0.1:6379> zrevrange hotsearch:20230927 0 9 withscores
1) "movie3"
2) "18"
3) "movie1"
4) "11"
5) "movie2"
6) "10"

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

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

相关文章

Hive【Hive(二)DML】

启动 hive 命令行: hive DML 数据操作 1、数据导入 1.1、向表中装载数据(load) 语法: hive> load data [local] inpath 数据的path [overwrite] into table student [partition (partcol1val1,…)];(1&#x…

轻松上手Docker:学习如何创建和运行自己的Docker容器

文章目录 轻松上手Docker:学习如何创建和运行自己的Docker容器容器的介绍Docker的技术架构容器的工作机制(Docker)容器的关键技术 - NamespaceNamespace隔离说明 容器的关键技术 - CgroupDocker环境搭建1)安装基础软件包2&#xf…

十四,间接漫反射用到球体中

间接光照分为间接漫反射和间接镜面反射。 辐照度图是用来适用于间接漫反射的。 直射光也有漫反射,对比下两者。 直接光kD * albedo / PI * radiance * NdotL;其中radiance * NdotL是光照, 间接光: kD * texture(irradianceMap, N).rgb* al…

SD-MTSP:萤火虫算法(FA)求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、萤火虫算法(FA)简介 萤火虫算法(Firefly Algorithm,FA)是Yang等人于2009年提出的一种仿生优化算法。 参考文献:田梦楚, 薄煜明, 陈志敏, et al. 萤火虫算法智能优化粒子滤波[J]. 自动化学报, 2016, 42(001):89-97. 二、单仓…

八大排序详解

目录 1.排序的概念及应用 1.1 排序的概念 1.2 排序的应用 1.3 常见的排序算法 2.常见排序算法的实现 2.1 直接插入排序 2.1.1 基本思想 2.1.2 动图解析 2.1.3 排序步骤(默认升序) 2.1.4 代码实现 2.1.5 特性总结 2.2 希尔排序 2.2.1 基本思…

HarmonyOS开发:封装一个便捷的Log工具类

前言 日志打印,没什么好说的,系统已给我们提供,且调用也是非常的简单,我们封装的目的,一是扩展,打印一些不常见的类型,比如格式化json,使得日志看起来比较好看,二是&…

GEO生信数据挖掘(二)下载基因芯片平台文件及注释

检索到目标数据集后,开始数据挖掘,本文以阿尔兹海默症数据集GSE1297为例 目录 下载平台文件 1.AnnotGPL参数改为TRUE,联网下载芯片平台的soft文件。(国内网速奇慢经常中断) 2.手工去GEO官网下载 转换芯片探针ID为gene name 拓…

智能合约经典漏洞案例,xSurge 重入漏洞+套利 综合运用

智能合约经典漏洞案例,xSurge 重入漏洞套利 综合运用 1. 事件介绍 xSurge 被攻击事件发生在 2021-08-16 日,距离今天已经近 1 年了,为什么还会选择这个事件进行分析?主要是这个攻击过程很有意思,有以下的几点思考 使…

UG\NX二次开发 通过点云生成曲面 UF_MODL_create_surf_from_cloud

文章作者:里海 来源网站:《里海NX二次开发3000例专栏》 感谢粉丝订阅 感谢 Rlgun 订阅本专栏,非常感谢。 简介 有网友想做一个通过点云生成曲面的程序,我们也试一下 效果 代码 #include "me.hpp" /*HEAD CREATE_SURF_FROM_CLOUD CCC UFUN */

【2023年11月第四版教材】第15章《风险管理》(合集篇)

第15章《风险管理》(合集篇) 1 章节说明2 管理基础2.1 风险的属性2.2 风险的分类★★★2.3 风险成本★★★2.4 管理新实践 3 管理过程4 管理ITTO汇总★★★5 过程1-规划风险管理6 过程2-识别风险6.1 识别风险★★★6.2 数据收集★★★6.3 数据分析★★★…

基于微信小程序快递取件上门预约服务系统设计与实现(开题报告+任务书+源码+lw+ppt +部署文档+讲解)

文章目录 前言运行环境说明用户的主要功能有:管理员的主要功能有:具体实现截图详细视频演示代码参考论文参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,…

范数Norm-衡量向量大小的方法

性质 非负性: 范数的值总是非负的,且当且仅当向量全为零时,范数的值为零。 齐次性: 对于任意实数α,有 三角不等式: 对于任意向量x和y,有 常见范数 L1: 向量所有元素绝对值的和,权重稀疏 L2:欧几里得范数,权重平滑 无穷范数:表示向量中最大的元素 为什么使用范…

【VUE复习·6】监视属性watch:用途、两种写法、简写、应用时注意事项(重点)、深度监视(重点)

总览 1.监视属性是用来干什么的? 2.监视属性的两种写法 3.应用时注意事项 4.深度监视 一、监视属性是用来干什么的? 1.用途 监视一个值(可以是基本属性 data,或者是计算属性 computed)是否被改变。如果此值被改变&…

C语言-变量与数据类型

一、基本语法 1、注释 注释(Comments)可以出现在代码中的任何位置,用来向用户提示或解释代码的含义。程序编译时,会忽略注释,不做任何处理。 C 语言有两种注释方式: (1)单行注释 …

3+单基因泛癌+铜死亡纯生信思路

今天给同学们分享一篇3单基因泛癌铜死亡纯生信思路的生信文章“Systematic pan-cancer analysis identifies SLC31A1 as a biomarker in multiple tumor types”,这篇文章于2023年3月27日发表在BMC Med Genomics 期刊上,影响因子为3.622。 溶质载体家族3…

【Unity】简单的深度虚化shader

【Unity】简单的深度虚化shader 实现效果 可以用于对地图场景边界的白模处理 实现方法 1.关键方法 UnityObjectToClipPos:将物体坐标转换为屏幕坐标 LinearEyeDepth:将屏幕坐标中的z值转换为实际的深度值 saturate:将值规范到0~1之间&a…

【AI视野·今日Robot 机器人论文速览 第四十一期】Tue, 26 Sep 2023

AI视野今日CS.Robotics 机器人学论文速览 Tue, 26 Sep 2023 Totally 73 papers 👉上期速览✈更多精彩请移步主页 Daily Robotics Papers Extreme Parkour with Legged Robots Authors Xuxin Cheng, Kexin Shi, Ananye Agarwal, Deepak Pathak人类可以通过以高度动态…

成为吃鸡战场的王者!分享顶级战术干货,助您提高战斗力!

各位吃鸡战场的玩家们,欢迎来到本视频!在这里,我将为您呈现一些与众不同的吃鸡干货,帮助您提高战斗力、轻松吃鸡! 首先,让我们谈一谈作图工具推荐。绝地求生作图工具是吃鸡玩家们的必备利器。我将给大家推荐…

IDEA运行第一个Java简单程序(新建项目到运行类)

目录 前言 一、准备工作 JDK下载安装 1.IDEA下载安装 二、IDEA建立项目 (一)新建项目(银河系) (二)新建模块(地球) (三)新建包(国家&#…

1.3python基础语法——PyCharm

1)PyCharm的作用 python的集成开发环境,功能如下: Project管理 智能提示 语法高亮 代码跳转 调试代码 解释代码(解释器) 框架和库 2)下载与安装 下载地址:http://www.jetbrains.com/pycharm/download/#sectionwind…