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

Redis十大类型——Set与Zset常见操作

Redis十大类型——Set与Zset常见操作

  • Set
    • 命令操作简列
    • 基本操作
    • 展示删除
    • 移动剪切
    • 集合运算
  • Zset
    • 基本操作简列
    • 添加展示反转
    • 按分数取值
    • 获取分数值
    • 删除
    • 分数操作
    • 下标操作

如果我们对Java有所了解,相信大家很容易就明白Set,在Redis中也一样,Set的value值不重复,无序不重复

Set

命令操作简列

  • sadd : 创建set并添加元素
  • smembers : 展示某个set
  • sismember : 检查set中是否存在某个值,存在返回1,不存在返回0
  • srem : 删除一个值,待删除的值存在返回1并删除,不存在则返回0
  • scard : 统计set中元素个数
  • srandmember ‘key’ ‘n’ : 在’key’中随机选n个元素不进行删除操作
  • spop ‘key’ ‘n’ : 从’key’中随机弹出n个元素,弹出后将从’key’中删除该元素
  • smove ‘key1’ ‘key2’ : 将’key1’中存在的某个值移动移动移动!!到’key2’
  • sdiff ‘key1’ ‘key2’:获取差集,即指在’key1’中存在’key2’中没有的值
  • sunion ‘key1’ ‘key2’ : 取并集,即两个key中的所有元素
  • sinter ‘key1’ ‘key2’ : 取交集,即两个key中同时存在的元素
  • sintercard ‘n’ ‘ke1’ … : 取交集,n个key列举后取交集并返回共有的个数

基本操作

  • sadd : 创建set并添加元素
  • smembers : 展示某个set
  • sismember : 检查set中是否存在某个值,存在返回1,不存在返回0
  • srem : 删除一个值,待删除的值存在返回1并删除,不存在则返回0
  • scard : 统计set中元素个数

set基本操作

展示删除

  • srandmember ‘key’ ‘n’ : 在’key’中随机选n个元素不进行删除操作
  • spop ‘key’ ‘n’ : 从’key’中随机弹出n个元素,弹出后将从’key’中删除该元素

展示删除

移动剪切

  • smove ‘key1’ ‘key2’ : 将’key1’中存在的某个值移动移动移动!!到’key2’

移动

集合运算

  • sdiff ‘key1’ ‘key2’:获取差集,即指在’key1’中存在’key2’中没有的值
  • sunion ‘key1’ ‘key2’ : 取并集,即两个key中的所有元素
  • sinter ‘key1’ ‘key2’ : 取交集,即两个key中同时存在的元素

下面展示一条Redis7中的新命令,主要做去重统计用

  • sintercard ‘n’ ‘ke1’ … : 取交集,n个key列举后取交集并返回共有的个数

集合运算

  • sintercard ‘n’ ‘ke1’ … limit y: 取交集,n个key列举后取交集并返回共有的个数 最大取y个

Zset

Zset在Set基础上,每个val值前面加了一个score分数值,从而达到有序集合目的使set有序不重复
Zset

基本操作简列

  • zadd : 创建添加元素
  • zrange ‘key’ ‘start’ ‘end’ [withscores]: 类似遍历展示所有元素
  • zrevrange : 逆序遍历
  • zrangebyscore ‘key’ ‘num1’ ‘num2’ [withscores] : 在key中取分数在num1到num2之间的值
  • zscore : 获取某个值对应的分数
  • zcard : 获取集合中元素数量
  • zrem : 删除某个值,删除成功返回1,没有该元素返回0
  • zincrby : 增加某个元素的分数
  • zcount : 获取某指定分数范围内元素个数
  • zmpop ‘n’ ‘key’ … min/max count ‘m’ : 从n个’key’中弹出最小最大的m个元素
  • zrank : 正着数获取某个元素下标索引
  • zrevrank : 倒着数获取某个元素下标索引

添加展示反转

  • zadd : 创建添加元素
  • zrange ‘key’ ‘start’ ‘end’ [withscores] : 类似遍历展示所有元素
  • zrevrange : 逆序遍历

在这里插入图片描述

按分数取值

前面关于zset的三个函数我们也能看到都是通过值取,那么下面这个顾名思义也很好理解就是通过分数过滤来取值

  • zrangebyscore ‘key’ ‘num1’ ‘num2’ [withscores] : 在key中取分数在num1到num2之间的值

这里我们可以注意到一些带“(”的情况即表示不包含当前值,limit则表示取几个值用于限制返回
byscore

获取分数值

  • zscore : 获取某个值对应的分数
  • zcard : 获取集合中元素数量

获取

删除

  • zrem : 删除某个值,删除成功返回1,没有该元素返回0

删除

分数操作

  • zincrby : 增加某个元素的分数
  • zcount : 获取某指定分数范围内元素个数
    下面再展示一条Redis7中的新命令,主要做去重统计用
  • zmpop ‘n’ ‘key’ … min/max count ‘m’ : 从n个’key’中弹出最小最大的m个元素

示例

下标操作

  • zrank : 正着数获取某个元素下标索引
  • zrevrank : 倒着数获取某个元素下标索引

下标

相关文章:

Redis十大类型——Set与Zset常见操作

Redis十大类型——Set与Zset常见操作Set命令操作简列基本操作展示删除移动剪切集合运算Zset基本操作简列添加展示反转按分数取值获取分数值删除分数操作下标操作如果我们对Java有所了解,相信大家很容易就明白Set,在Redis中也一样,Set的value值…...

车载雷达实战之Firmware内存优化

内存(Memory)是计算机中最重要的部件之一,计算机运时的程序以及数据都依赖它进行存储。内存主要分为随机存储器(RAM),只读存储器(ROM)以及高速缓存(Cache)。仅仅雷达的原…...

【剑指Offer】JZ14--剪绳子

剪绳子详解1.问题描述2.解题思路3.具体实现1.问题描述 2.解题思路 首先想到的思路:因为是求乘积的最大值,所以如果截取剩下的是1,那还是它本身就没有意义。从此出发,考虑绳子长度是2、3、4、5…通过穷举法来找规律。 值–》拆分–…...

raspberry pi播放音视频

文章目录目的QMediaPlayerGStreamerwhat is GStreamer体系框架优势omxplayerwhat is omxplayercommand Linekey bindings运行过程中错误ALSA目的 实现在树莓派下外接扬声器, 播放某段音频, 进行回音测试。 QMediaPlayer 首先我的安装是5.11版本。 优先…...

【电子学会】2022年12月图形化二级 -- 老鹰捉小鸡

老鹰捉小鸡 小鸡正在农场上玩耍,突然从远处飞来一只老鹰,小鸡要快速回到鸡舍中,躲避老鹰的抓捕。 1. 准备工作 (1)删除默认白色背景,添加背景Farm; (2)删除默认角色小…...

C++的双端队列

双端队列介绍1.双端队列知识需知2.大试牛刀1.双端队列知识需知 由于队列是一种先进先出(FIFO)的数据结构,因此无法直接从队列的底部删除元素。如果希望从队列的底部删除元素,可以考虑使用双端队列(deque)。…...

【独家】华为OD机试 - 拼接 URL(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

为什么使用Junit单元测试?Junit的详解

Hi I’m Shendi 为什么使用Junit单元测试?Junit的详解 Junit简介 Junit是一个Java语言的单元测试框架。 单元测试是一个对单一实体(类或方法)的测试 JUnit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression test…...

怎么学好嵌入式Linux系统和驱动

嵌入式专业是一门实践性非常强的学科,只有多动手,多实践,多编程,多调试,多看书,多思考才能真正掌握好嵌入式开发技术。 现在很多同学也意识到了学校培养模式和社会需求脱节问题,有一部分同学也先…...

Spring Aware总结

概述 Spring中Aware到底是什么意思? 我们在看Spring源码的时候,经常可以看到xxxAwarexxx的身影,通常我会很疑惑,Aware到底是什么意思呢? 比如图片中这些包含Aware关键字的类或者接口。 我对下面3个类或接口进行了解…...

【RocketMQ】源码详解:Broker端消息刷盘流程

消息刷盘 同步入口:org.apache.rocketmq.store.CommitLog.GroupCommitService 异步入口:org.apache.rocketmq.store.CommitLog.FlushRealTimeService 刷盘有同步和异步两种,在实例化Commitlog的时候,会根据配置创建不同的服务 p…...

编码器SIQ-02FVS3驱动

一.简介 此编码器可以是功能非常强大,可以检测左右转动,和按键按下,所以说这一个编码器可以抵三个按键,而且体积非常小,使用起来比三个按键要高大尚,而且驱动也简单。唯一不足的点就是价格有点小贵6-8元才…...

【2021.9.7】记一次exe手动添加shellcode

【2021.9.7】记一次exe手动添加shellcode 文章目录【2021.9.7】记一次exe手动添加shellcode0.大致思路1.获取MessageBox的真实地址VA2.通过OD在代码段添加shellcode3.dump出数据,设置程序OEP4.测试dump出来的exe5.方法总结测试的exe和添加了shellcode的exe:链接&…...

常用训练tricks,提升你模型的鲁棒性

目录一、对抗训练FGM(Fast Gradient Method): ICLR2017代码实现二、权值平均1.指数移动平均(Exponential Moving Average,EMA)为什么EMA会有效?代码实现2. 随机权值平均(Stochastic Weight Averaging,SWA&a…...

具有精密内部基准的 DACx0502 简介及驱动应用示例

DACx0502 说明 16 位 DAC80502、14 位 DAC70502 和 12 位DAC60502 (DACx0502) 数模转换器 (DAC) 均为具有电压输出的高精度、低功耗器件。 DACx0502 线性度小于 1LSB。凭借高精度和微型封装特性,DACx0502 非常适合以下 应用: 增益和失调电压校准、电流…...

C语言函数:字符串函数及模拟实现strncpy()、strncat()、strncmp()

C语言函数:字符串函数及模拟实现strncpy()、strncat()、strncmp() 在了解strncpy、strncat()、前,需要先了解strcpy()、strncat(): C语言函数:字符串函数及模拟实现strlen() 、strcpy()、 strcat()_srhqwe的博客-CSDN博客 strncp…...

学术论文插图要求简介

1. 类型 位图和矢量图是两种不同的图像类型,它们在存储和处理图像时使用不同的方法。以下是它们之间的详细区别: 图像构成方式:位图使用像素(或图像的最小单元)来构建图像,每个像素都有自己的颜色和亮度值。…...

【独家】华为OD机试 - 斗地主 2(C 语言解题)

最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南)华为od机试,独家整理 已参加机试人员的实战技巧文章目录 最近更新的博客使用说明本期…...

力扣-计算特殊奖金

大家好,我是空空star,本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目:1873. 计算特殊奖金二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其他总…...

华为校招机试真题目录

专栏介绍 本专栏将逐步收集历年华为校招算法真题 专栏权益 每篇博客都包含: 算法考点解析(文字+画图)算法源码(支持 Java / JS / Python)每晚9:00 ~ 11:00 在线答疑 真题目录 时间题目考点 or 实现2022.11.27...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道(多模态 OCR → 语义检索 → 答案渲染)、两级检索(倒排 BM25 向量 HNSW)并以大语言模型兜底”的整体框架: 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后,分别用…...

龙虎榜——20250610

上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

Android15默认授权浮窗权限

我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

CMake控制VS2022项目文件分组

我们可以通过 CMake 控制源文件的组织结构,使它们在 VS 解决方案资源管理器中以“组”(Filter)的形式进行分类展示。 🎯 目标 通过 CMake 脚本将 .cpp、.h 等源文件分组显示在 Visual Studio 2022 的解决方案资源管理器中。 ✅ 支持的方法汇总(共4种) 方法描述是否推荐…...

【JVM】Java虚拟机(二)——垃圾回收

目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四&#xff…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...