当前位置: 首页 > 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 : 倒着数获取某个元素下标索引

下标

http://www.lryc.cn/news/30371.html

相关文章:

  • 车载雷达实战之Firmware内存优化
  • 【剑指Offer】JZ14--剪绳子
  • raspberry pi播放音视频
  • 【电子学会】2022年12月图形化二级 -- 老鹰捉小鸡
  • C++的双端队列
  • 【独家】华为OD机试 - 拼接 URL(C 语言解题)
  • 为什么使用Junit单元测试?Junit的详解
  • 怎么学好嵌入式Linux系统和驱动
  • Spring Aware总结
  • 【RocketMQ】源码详解:Broker端消息刷盘流程
  • 编码器SIQ-02FVS3驱动
  • 【2021.9.7】记一次exe手动添加shellcode
  • 常用训练tricks,提升你模型的鲁棒性
  • 具有精密内部基准的 DACx0502 简介及驱动应用示例
  • C语言函数:字符串函数及模拟实现strncpy()、strncat()、strncmp()
  • 学术论文插图要求简介
  • 【独家】华为OD机试 - 斗地主 2(C 语言解题)
  • 力扣-计算特殊奖金
  • 华为校招机试真题目录
  • EdgeYOLO学习笔记
  • 【分布式】什么是分布式锁?正文揭晓
  • 超详细JDK1.8所有版本下载地址
  • 论文解析[11] CAT: Cross Attention in Vision Transformer
  • 嵌入式和Python(一):python环境搭建的详细步骤
  • 嵌入式学习笔记——STM32硬件基础知识
  • Mybatis插件开发及执行原理
  • vue父子组件通信,兄弟组件通信
  • 大数据技术之Hadoop集群配置
  • MicroBlaze系列教程(7):AXI_SPI的使用(M25P16)
  • 使用Python通过拉马努金公式快速求π