当前位置: 首页 > news >正文

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)

文章目录

  • 四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)
  • 1. 有序集合 Zset(sorted set)
  • 2. zset 有序集合常用指令(详细讲解说明)
    • 2.1 `zadd <key><score1><value1><score2><value2>…` 将一个或多个 member 元素及其 score 值加入 到有序集 key 当中。
    • 2.2 `zrange <key><start><stop> [WITHSCORES]` 返回有序集 key 中,下标在`<start><stop>`之间的元素, 带 WITHSCORES,可以让分数一起和值返回到结果集,返回的结果是“升序”
    • 2.3 `zreverange <key><start><stop> [WITHSCORES]` 返回有序集 key 中,下标在`<start><stop>`之间的元素, 带 WITHSCORES,可以让分数一起和值返回到结果集,返回的是“降序”
    • 2.4 `zscore <key><member> ` 返回有序集 key 中,成员 member 的 score 值
    • 2.5 `zrangebyscore key min max [withscores] [limit offset count]` 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。
    • 2.6 `zrevrangebyscore key max min [withscores] [limit offset count] 同上`,改为从大到小排列
    • 2.7 `zincrby <key><increment><value> ` 为元素的 score 加上增量
    • 2.8 `zrem <key><value>` 删除该集合下,指定值的元素
    • 2.9 `zcount <key><min><max>` 统计该集合,分数区间内的元素个数
    • 2.10 `zrank <key><value>` 返回该值在集合中的排名,从 0 开始
  • 3. 最后:


1. 有序集合 Zset(sorted set)

  1. Redis 有序集合 zset 与 普通集合 set 非常相似,时一个没有重复元素的字符串集合
  2. 不同之处是有序集合的每个成员都关联了一个评分(score) ,这个评分(score) 被用来按照,从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分是可以重复的。
  3. 因为元素是有序的,所以有可以很快的根据评分(score) 或者次序 (position)来获取一个范围的元素内容。
  4. 访问有序集合的中间元素也是非常快的,你能够使用有序集合作为一个没有重复成员的列表。

sorted set 指令示意图- 案例蜀国五虎将:

在这里插入图片描述

2. zset 有序集合常用指令(详细讲解说明)

关于 zset 有序集合的命令,在 Redis 当中有如下这些:

在这里插入图片描述

这里我们介绍一些 zset 有序集合比较常用的一些命令,然后,举一反三,根据文档也可以对其它的命令上手学习使用了

2.1 zadd <key><score1><value1><score2><value2>… 将一个或多个 member 元素及其 score 值加入 到有序集 key 当中。

在这里插入图片描述

127.0.0.1:6379> zadd hero 1 "gy" 2 "zf" 3 "zy" 4 "mc" 5 "hz"

在这里插入图片描述

2.2 zrange <key><start><stop> [WITHSCORES] 返回有序集 key 中,下标在<start><stop>之间的元素, 带 WITHSCORES,可以让分数一起和值返回到结果集,返回的结果是“升序”

在这里插入图片描述

127.0.0.1:6379> zrange hero 0 -1

在这里插入图片描述

注意: zrange 后面可以追加上,带 WITHSCORES,可以让分数一起和值返回到结果集。默认是根据 score 评分进行一个升序排序的。

在这里插入图片描述

2.3 zreverange <key><start><stop> [WITHSCORES] 返回有序集 key 中,下标在<start><stop>之间的元素, 带 WITHSCORES,可以让分数一起和值返回到结果集,返回的是“降序”

在这里插入图片描述

使用和 zrange 是一样的。

127.0.0.1:6379> zrevrange hero 0 -1

在这里插入图片描述

127.0.0.1:6379> zrevrange hero 0 -1 withscores

在这里插入图片描述

2.4 zscore <key><member> 返回有序集 key 中,成员 member 的 score 值

在这里插入图片描述

127.0.0.1:6379> zscore hero gy

在这里插入图片描述

2.5 zrangebyscore key min max [withscores] [limit offset count] 返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列。

在这里插入图片描述

127.0.0.1:6379> zrangebyscore hero 1 3

在这里插入图片描述

在这里插入图片描述

2.6 zrevrangebyscore key max min [withscores] [limit offset count] 同上,改为从大到小排列

在这里插入图片描述

127.0.0.1:6379> zrevrangebyscore hero 5 1

在这里插入图片描述

2.7 zincrby <key><increment><value> 为元素的 score 加上增量

在这里插入图片描述

127.0.0.1:6379> zincrby hero 4 zf

在这里插入图片描述

当然,也可以是 - score评分值了

127.0.0.1:6379> zincrby hero -4 zf

在这里插入图片描述

2.8 zrem <key><value> 删除该集合下,指定值的元素

在这里插入图片描述

127.0.0.1:6379> zrem hero "zy"

在这里插入图片描述

2.9 zcount <key><min><max> 统计该集合,分数区间内的元素个数

在这里插入图片描述

127.0.0.1:6379> zcount hero 2 10

在这里插入图片描述

2.10 zrank <key><value> 返回该值在集合中的排名,从 0 开始

在这里插入图片描述

127.0.0.1:6379> zrank hero gy

在这里插入图片描述

3. 最后:

“在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。感谢你们,我们总会在某个时刻再次相遇。”

在这里插入图片描述

相关文章:

四.4 Redis 五大数据类型/结构的详细说明/详细使用( zset 有序集合数据类型详解和使用)

四.4 Redis 五大数据类型/结构的详细说明/详细使用&#xff08; zset 有序集合数据类型详解和使用&#xff09; 文章目录 四.4 Redis 五大数据类型/结构的详细说明/详细使用&#xff08; zset 有序集合数据类型详解和使用&#xff09;1. 有序集合 Zset(sorted set)2. zset 有序…...

Java---猜数字游戏

本篇文章所实现的是Java经典的猜数字游戏 , 运用简单代码来实现基本功能 目录 一.题目要求 二.游戏准备 三.代码实现 一.题目要求 随机生成一个1-100之间的整数(可以自己设置区间&#xff09;&#xff0c;提示用户猜测&#xff0c;猜大提示"猜大了"&#xff0c;…...

网站快速收录:利用RSS订阅提升效率

本文转自&#xff1a;百万收录网 原文链接&#xff1a;https://www.baiwanshoulu.com/27.html 利用RSS订阅可以显著提升网站内容的更新和收录效率&#xff0c;以下是一些具体的方法和策略&#xff1a; 一、RSS订阅的基本原理 RSS&#xff08;ReallySimpleSyndication或RichS…...

vue3第三部分--组件通信

title: 组件通信 date: 2025-01-28 12:00:00 tags:- 前端 categories:- 前端组件通信 目标&#xff1a;重点学习父子组件与兄弟组件的通信方式&#xff0c;以及插槽的作用与使用方式 父子组件通信 主要是通过props和自定义事件来实现 1.1 父 -> 子通信&#xff08;通过 …...

DeepSeek R1-Zero vs. R1:强化学习推理的技术突破与应用前景

&#x1f4cc; 引言&#xff1a;AI 推理的新时代 近年来&#xff0c;大语言模型&#xff08;LLM&#xff09; 的规模化扩展成为 AI 研究的主流方向。然而&#xff0c;LLM 的扩展是否真的能推动 通用人工智能&#xff08;AGI&#xff09; 的实现&#xff1f;DeepSeek 推出的 R1…...

matlab提取滚动轴承故障特征

为了精准、稳定地提取滚动轴承故障特征&#xff0c;提出了基于变分模态分解和奇异值分解的特征提取方法&#xff0c;采用标准模糊C均值聚类(fuzzy C means clustering, FCM)进行故障识 别。对同一负荷下的已知故障信号进行变分模态分解&#xff0c;利用 奇异值分解技术进一步提…...

数据结构与算法学习笔记----容斥原理

数据结构与算法学习笔记----容斥原理 author: 明月清了个风 first publish time: 2025.1.30 ps⭐️介绍了容斥原理的相关内容以及一道对应的应用例题。 Acwing 890. 能被整除的数 [原题链接](890. 能被整除的数 - AcWing题库) 给定一个整数 n n n和 m m m个不同的质数 p 1 …...

Java 知识速记:全面解析 final 关键字

Java 知识速记&#xff1a;全面解析 final 关键字 什么是 final 关键字&#xff1f; final 关键字是 Java 中的一个修饰符。它可以用于类、方法和变量&#xff0c;其作用是限制对这些元素的修改。究竟如何限制&#xff1f;我们来逐个分析。 final 在变量中的用法 1. 声明常…...

(笔记+作业)书生大模型实战营春节卷王班---L0G2000 Python 基础知识

学员闯关手册&#xff1a;https://aicarrier.feishu.cn/wiki/QtJnweAW1iFl8LkoMKGcsUS9nld 课程视频&#xff1a;https://www.bilibili.com/video/BV13U1VYmEUr/ 课程文档&#xff1a;https://github.com/InternLM/Tutorial/tree/camp4/docs/L0/Python 关卡作业&#xff1a;htt…...

9、Docker环境安装Nginx

一、拉取镜像 docker pull nginx:1.24.0二、创建映射目录 作用&#xff1a;是将docker中nginx的相关配置信息映射到外面&#xff0c;方便修改配置文件 1、创建目录 # cd home/ # mkdir nginx/ # cd nginx/ # mkdir conf html log2、生成容器 docker run -p 80:80 -d --name…...

受击反馈HitReact、死亡效果Death Dissolve、Floating伤害值Text(末尾附 客户端RPC )

受击反馈HitReact 设置角色受击标签 (GameplayTag基本了解待补充) 角色监听标签并设置移动速度 创建一个受击技能&#xff0c;并应用GE 实现设置角色的受击蒙太奇动画 实现角色受击时播放蒙太奇动画&#xff0c;为了保证通用性&#xff0c;将其设置为一个函数&#xff0c;并…...

572. 另一棵树的子树

前导题&#xff1a;100. 相同的树 回顾一下 判断两棵二叉树相同&#xff0c;根结点相同 且 左子树相同 且 右子树相同。 于是判断如下&#xff1a; 根结点都为null&#xff0c;返回true根结点不都为null&#xff0c;返回false根结点都不为null&#xff0c;但是值不相同&#…...

MATLAB中textBoundary函数用法

目录 语法 说明 示例 匹配文本的边界 匹配文本的结尾边界 对文本的边界求反 textBoundary函数的功能是匹配文本的开头或结尾。 语法 pat textBoundary pat textBoundary(type) 说明 pat textBoundary 创建与文本开头或结尾匹配的模式。textBoundary 可以使用 ~ 运算…...

vue3的路由配置

先找到Layout布局文件&#xff0c;从中找到左侧边栏&#xff0c;找到下述代码 <SidebarItem v-for"route in noHiddenRoutes" :key"route.path" :item"route" :base-path"route.path" />/** *菜单项 <SidebarItem>: *使用…...

在彼此的根系里呼吸

爱如草木&#xff0c;需以晨露滋养&#xff0c;而非绳索捆缚。一段健康的亲密关系&#xff0c;恰似两株根系相连却各自向阳的树——风起时枝叶相触&#xff0c;晴空下共享光影&#xff0c;却始终保有向地心深处生长的自由。那些纠缠的根须是信任编织的网&#xff0c;容得下沉默…...

深入理解若依RuoYi-Vue数据字典设计与实现

深入理解若依数据字典设计与实现 一、Vue2版本主要文件目录 组件目录src/components&#xff1a;数据字典组件、字典标签组件 工具目录src/utils&#xff1a;字典工具类 store目录src/store&#xff1a;字典数据 main.js&#xff1a;字典数据初始化 页面使用字典例子&#xf…...

深入MapReduce——从MRv1到Yarn

引入 我们前面篇章有提到&#xff0c;和MapReduce的论文不太一样。在Hadoop1.0实现里&#xff0c;每一个MapReduce的任务并没有一个独立的master进程&#xff0c;而是直接让调度系统承担了所有的worker 的master 的角色&#xff0c;这就是Hadoop1.0里的 JobTracker。在Hadoop1…...

Flutter_学习记录_Tab的简单Demo~真的很简单

1. Tab的简单使用了解 要实现tab(选项卡或者标签视图)需要用到三个组件&#xff1a; TabBarTabBarViewTabController 这一块&#xff0c;我也不知道怎么整理了&#xff0c;直接提供代码吧&#xff1a; import package:flutter/material.dart;void main() {runApp(MyApp());…...

CSS核心

CSS的引入方式 内部样式表是在 html 页面内部写一个 style 标签&#xff0c;在标签内部编写 CSS 代码控制整个 HTML 页面的样式。<style> 标签理论上可以放在 HTML 文档的任何地方&#xff0c;但一般会放在文档的 <head> 标签中。 <style> div { color: r…...

Deepseek本地部署(ollama+open-webui)

ollama 首先是安装ollama&#xff0c;这个非常简单 https://ollama.com/ 下载安装即可 open-webui 这个是为了提供一个ui&#xff0c;毕竟我们也不想在cmd和模型交互&#xff0c;很不方便。 第一&#xff0c;需要安装python3.11&#xff0c;必须是3.11&#xff08;其他版…...

Qwen3-Embedding-4B入门必看:Embedding模型vs LLM生成模型的核心差异

Qwen3-Embedding-4B入门必看&#xff1a;Embedding模型vs LLM生成模型的核心差异 1. 引言&#xff1a;从关键词搜索到语义理解 你是否曾经遇到过这样的困扰&#xff1a;在搜索引擎中输入"苹果"&#xff0c;结果既出现了水果苹果的信息&#xff0c;又出现了苹果公司…...

Wan2.2-I2V-A14B部署教程:解决OOM/驱动报错/端口冲突三大常见问题

Wan2.2-I2V-A14B部署教程&#xff1a;解决OOM/驱动报错/端口冲突三大常见问题 1. 镜像概述与核心优势 Wan2.2-I2V-A14B是一款专为文生视频任务优化的私有部署镜像&#xff0c;特别针对RTX 4090D 24GB显存配置进行了深度优化。这个镜像最大的特点是解决了AI视频生成领域常见的…...

教无人机操控3年,这款仿真软件让我彻底告别“真机实训焦虑”

作为无人机专业实操教师&#xff0c;深耕一线教学3年&#xff0c;最大的痛点莫过于“真机实训难”——相信同行们都有共鸣&#xff0c;无人机操控教学看似是“练手”&#xff0c;实则处处是坑&#xff0c;每一个难题都让人头疼不已&#xff0c;甚至一度让我陷入教学焦虑。整理了…...

Mojo嵌入Python项目的4种架构模式(含GIL绕过实测数据+内存安全验证报告)

第一章&#xff1a;Mojo嵌入Python项目的4种架构模式&#xff08;含GIL绕过实测数据内存安全验证报告&#xff09;Mojo 作为兼具 Python 兼容性与系统级性能的新兴语言&#xff0c;其嵌入 Python 项目的能力已通过多种生产就绪架构得到验证。以下四种主流集成模式均在 macOS Ve…...

本地硬盘装系统神器更新!WinToHDD v7.0,支持加密/多分区安装

软件下载 夸克下载&#xff1a;https://pan.quark.cn/s/8bb2d79a1f4c迅雷下载&#xff1a;https://pan.xunlei.com/s/VOottCVsfGa3nDKv07YreMVPA1?pwdve85#UC下载&#xff1a;https://pan.xunlei.com/s/VOottCVsfGa3nDKv07YreMVPA1?pwdve85# 软件介绍 前几天一直看见有群友…...

告别“AI失忆“!掌握Harness Engineering,让AI秒变高效生产力工具

文章指出AI难以胜任长周期复杂任务并非因"不够聪明"&#xff0c;而是缺乏工程化工作方式。核心解法是引入Harness运行框架&#xff0c;通过外部记忆替代上下文依赖、强制任务拆解、建立固定执行循环及测试优先机制&#xff0c;将AI从单打独斗的"代码生成器"…...

从BIOS到BMC:手把手拆解Redfish协议在服务器开机时的‘数据握手’全过程

从BIOS到BMC&#xff1a;手把手拆解Redfish协议在服务器开机时的‘数据握手’全过程 凌晨3点的数据中心&#xff0c;一台刚上电的服务器正以毫秒级速度完成自检。在这不足5秒的瞬间里&#xff0c;BIOS与BMC之间正通过Redfish协议进行着精密的数据舞蹈——这不是简单的信息交换&…...

Python实战:用SymPy解常微分方程 vs 偏微分方程的5个关键差异

Python实战&#xff1a;用SymPy解常微分方程 vs 偏微分方程的5个关键差异 微分方程是数学建模的核心工具&#xff0c;而Python的SymPy库让符号计算变得触手可及。但当你真正在Jupyter Notebook中敲下dsolve()命令时&#xff0c;是否困惑过为什么有些方程秒出结果&#xff0c;有…...

ROS2时间处理避坑指南:从rclcpp::Time到header.stamp的5种转换方法

ROS2时间处理避坑指南&#xff1a;从rclcpp::Time到header.stamp的5种转换方法 在ROS2开发中&#xff0c;时间戳处理看似简单却暗藏玄机。许多开发者在将rclcpp::Time转换为header.stamp时踩过坑——从版本兼容性问题到精度丢失&#xff0c;再到线程安全陷阱。本文将带您深入理…...

UniApp应用变现实战:用uni-ad激励视频提升用户留存与收益的配置心得

UniApp应用变现实战&#xff1a;用uni-ad激励视频提升用户留存与收益的配置心得 在移动应用生态中&#xff0c;广告变现与用户体验的平衡一直是开发者面临的难题。激励视频作为一种用户主动参与的广告形式&#xff0c;不仅能为开发者带来收益&#xff0c;还能通过奖励机制提升用…...