Redis命令 - Sets命令组常用命令

2024-01-14 20:12
文章标签 命令 redis 常用命令 sets

本文主要是介绍Redis命令 - Sets命令组常用命令,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Set集合,无序,一堆不重复值的组合。利用redis提供的set数据结构,可以存储一些集合性的数据。

使用场景:例如,实现如共同关注、共同喜好、二度好友等

1、SADD key member [member …]

向集合中添加一个或者多个成员
1.1、如果集合key 不存在,则新建集合key。并添加member元素到集合key中。myset不存在,执行下面命令后,就创建了myset并且成员是0和1

sadd myset 0 1
在这里插入图片描述
重复的成员不会被添加进去。sadd myset 0 1 0 1 也只会添加进一个0和一个1
在这里插入图片描述

1.2、如果已经在集合key中存在则忽略.

sadd myset 0
sadd myset 1
sadd myset 3
成员0和1已经存在,因此返回0。成员3不存在,因此返回1
在这里插入图片描述

1.3、如果key的类型不是集合则返回错误.

sadd myhash 1
在这里插入图片描述

2、SCARD key

返回集合存储的key的基数 (集合元素的数量).

key存在,返回集合的基数(元素的数量)。key不存在,则返回 0.
scard myset
scard myset1
在这里插入图片描述

3、SMEMBERS key

返回key集合所有的元素。不会删除元素。

smembers myset
在这里插入图片描述

4、SRANDMEMBER key [count]

随机返回key集合中的一个元素或者count个元素。不会删除元素

例如:myset有3个元素:0 1 3

  • 如果count是整数且小于元素的个数,返回含有 count 个不同的元素的数组
    在这里插入图片描述

  • 如果count是个整数且大于集合中元素的个数时,仅返回整个集合的所有元素
    在这里插入图片描述

  • 当count是负数,则会返回一个包含count的绝对值的个数元素的数组
    在这里插入图片描述

  • 如果count的绝对值大于元素的个数,则返回的结果集里会出现一个元素出现多次的情况.
    在这里插入图片描述

以上是key存在的情况,会随机返回一个或者count个成员。当key不存在时,返回null
在这里插入图片描述

5、SPOP key [count]

从存储在key的集合中移除并返回一个或多个随机元素。会删除元素。

此操作与SRANDMEMBER类似,它从一个集合中返回一个或多个随机元素,但不删除元素。

spop myset
smembers myset
可见随机返回了一个成员3,并且删除了3
在这里插入图片描述

6、SMOVE source destination member

将member从source集合移动到destination集合中. 对于其他的客户端,在特定的时间元素将会作为source或者destination集合的成员出现.

6.1 先创建两个集合

sadd set1 0 1 2
sadd set2 1 2 3
在这里插入图片描述

6.2 source 集合不存在或者不包含指定的元素

smove命令不执行任何操作并且返回0.

smove set3 set2 2
smove set1 set2 4
在这里插入图片描述

6.3 source 集合存在且包含指定的元素

此成员将会从source集合中移除,并添加到destination集合中去。

smove set1 set2 0
smembers set1
smembers set2
在这里插入图片描述
如果destination集合已经存在该元素,则smove命令仅将该元素从source集合中移除
在这里插入图片描述

6.4 若source 和destination不是集合类型

则返回错误
在这里插入图片描述

7、SINTER key [key …]

返回指定所有的集合的成员的交集。例如推荐共同好友,拿到两个用户的好友列表,有交集,那就可以把用户A的其他好友推荐给用户B。例如向Bob推荐杨幂,向Tom推荐杨颖,因为他们都有共同的好友张大大。

例如:

key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
SINTER key1 key2 key3 = {c}

sadd key1 a b c d
sadd key2 c
sadd key3 a c e
sinter key1 key2 key3
在这里插入图片描述

如果key不存在则被认为是一个空的集合。当给定的集合为空的时候,结果也为空.(一个集合为空,结果一直为空).
在这里插入图片描述

8、SUNION key [key …]

返回给定的多个集合的并集中的所有成员.

例如:

key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}
SUNION key1 key2 key3 = {a,b,c,d,e}

SUNION key1 key2 key3
SUNION key1 key2 key4
不存在的key可以认为是空的集合.
在这里插入图片描述

9、SDIFF key [key …]

返回一个集合与给定集合的差集的元素.

举例:

key1 = {a,b,c,d}
key2 = {c}
key3 = {a,c,e}

返回key3与key1和key2的差集。
SDIFF key1 key2 key3 = {b,d}

注:是最后一个key跟前面几个key的比较

Sdiff key1 key2 key3
Sdiff key1 key2
sdiff key1 key3
sdiff key2 key3
在这里插入图片描述
不存在的key认为是空集.
在这里插入图片描述

这篇关于Redis命令 - Sets命令组常用命令的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/606386

相关文章

shell脚本批量导出redis key-value方式

《shell脚本批量导出rediskey-value方式》为避免keys全量扫描导致Redis卡顿,可先通过dump.rdb备份文件在本地恢复,再使用scan命令渐进导出key-value,通过CN... 目录1 背景2 详细步骤2.1 本地docker启动Redis2.2 shell批量导出脚本3 附录总

批量导入txt数据到的redis过程

《批量导入txt数据到的redis过程》用户通过将Redis命令逐行写入txt文件,利用管道模式运行客户端,成功执行批量删除以Product*匹配的Key操作,提高了数据清理效率... 目录批量导入txt数据到Redisjs把redis命令按一条 一行写到txt中管道命令运行redis客户端成功了批量删除k

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Linux如何查看文件权限的命令

《Linux如何查看文件权限的命令》Linux中使用ls-R命令递归查看指定目录及子目录下所有文件和文件夹的权限信息,以列表形式展示权限位、所有者、组等详细内容... 目录linux China编程查看文件权限命令输出结果示例这里是查看tomcat文件夹总结Linux 查看文件权限命令ls -l 文件或文件夹

idea的终端(Terminal)cmd的命令换成linux的命令详解

《idea的终端(Terminal)cmd的命令换成linux的命令详解》本文介绍IDEA配置Git的步骤:安装Git、修改终端设置并重启IDEA,强调顺序,作为个人经验分享,希望提供参考并支持脚本之... 目录一编程、设置前二、前置条件三、android设置四、设置后总结一、php设置前二、前置条件

Redis MCP 安装与配置指南

《RedisMCP安装与配置指南》本文将详细介绍如何安装和配置RedisMCP,包括快速启动、源码安装、Docker安装、以及相关的配置参数和环境变量设置,感兴趣的朋友一起看看吧... 目录一、Redis MCP 简介二、安www.chinasem.cn装 Redis MCP 服务2.1 快速启动(推荐)2.

Linux系统之lvcreate命令使用解读

《Linux系统之lvcreate命令使用解读》lvcreate是LVM中创建逻辑卷的核心命令,支持线性、条带化、RAID、镜像、快照、瘦池和缓存池等多种类型,实现灵活存储资源管理,需注意空间分配、R... 目录lvcreate命令详解一、命令概述二、语法格式三、核心功能四、选项详解五、使用示例1. 创建逻

C语言进阶(预处理命令详解)

《C语言进阶(预处理命令详解)》文章讲解了宏定义规范、头文件包含方式及条件编译应用,强调带参宏需加括号避免计算错误,头文件应声明函数原型以便主函数调用,条件编译通过宏定义控制代码编译,适用于测试与模块... 目录1.宏定义1.1不带参宏1.2带参宏2.头文件的包含2.1头文件中的内容2.2工程结构3.条件编

Redis中Stream详解及应用小结

《Redis中Stream详解及应用小结》RedisStreams是Redis5.0引入的新功能,提供了一种类似于传统消息队列的机制,但具有更高的灵活性和可扩展性,本文给大家介绍Redis中Strea... 目录1. Redis Stream 概述2. Redis Stream 的基本操作2.1. XADD

nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析(结合应用场景)

《nginx-t、nginx-sstop和nginx-sreload命令的详细解析(结合应用场景)》本文解析Nginx的-t、-sstop、-sreload命令,分别用于配置语法检... 以下是关于 nginx -t、nginx -s stop 和 nginx -s reload 命令的详细解析,结合实际应