Redis系列(五)、数据类型之无序集合Set

Redis 五种数据类型 文章目录前言一、String 数据类型1. SET/GET/APPEND/STRLEN2. INCR/DECR/INCRBY/DECRBY3. GETSET4. SETEX5. SETNX6. MSET/MGET/MSETNX二、List 数据类型1. LPUSH/LPUSHX/LRANGE2. LPOP/LLEN3. LREM/LSET/LINDEX/LTRIM4. LINSERT5. RPUSH/RPUSHX/RPOP/RPOPLPUSH三、Hash 数据类型1. HSET/HGET/HDEL/HEXI 阅读详情

目录

介绍

命令行模式

増

删

改

查

交集

并集

差集

应用场景


Redis支持五种数据类型:String, Hash, List, Set, ZSet,这个系列介绍一下如何使用这些数据类型,本篇介绍使用命令行模式以及python客户端对redis进行操作,实际项目的过程中也大多是一模一样的用法。

相关内容:

Redis系列(一)、CentOS7下安装Redis6.0.3稳定版

Redis系列(二)、数据类型之字符串String 

Redis系列(三)、数据类型之哈希Hash

Redis系列(四)、数据类型之列表List

------------------------Redis无序集合类型----------------------

介绍

Redis 的 Set 是 string 类型的无序集合。

集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。

集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。

命令行模式

进入命令行模式:

redis-cli -a password_value
 
redis-cli -a password_value --raw
--raw 避免中文显示乱码

help

使用下面的命令查看手册:

help @set

 

増

sadd

给集合内新增成员,若集合不存在则创建集合并新增成员:

SADD key member [member ...]

删

srem

从集合中删除指定的成员,返回删除的个数:

SREM key member [member ...]

改

smove

SMOVE source destination member

 

查

smembers

查看集合中所有的成员: 

SMEMBERS key

 

scard

返回集合中成员的个数 :

SCARD key

srandmember

 从集合中随机返回指定个数的成员:

SRANDMEMBER key [count]

sismember

判断对象是否是集合中的成员,返回1/0,True/False: 

SISMEMBER key member

 

spop

从集合中随机弹出一个成员,返回该成员并从集合中删除该成员: 

SPOP key

交集

sinter

取多个集合的交集,返回这些集合中共同拥有的成员:

SINTER key [key ...]

sinterstore

将多个集合的交集的结果保存为一个新的集合destination  ,返回新集合的成员个数: 

SINTERSTORE destination key [key ...]

 

并集

sunion

取多个集合的并集,相同的成员会被去重:

SUNION key [key ...]

 

sunionstore

将多个集合的并集的结果保存为一个新的集合destination ,返回新集合的成员个数: 

SUNIONSTORE destination key [key ...]

 

差集

sdiff

 取多个集合的差集,以最左边的为主集合,返回左集合中有而其他集合没有的成员:

SDIFF key [key ...]

sdiffstore

将多个集合的差集的结果保存为一个新的集合destination ,返回新集合的成员个数 : 

SDIFFSTORE destination key [key ...]

 

 

应用场景

  1. 抽奖:随机返回指定个数成员
  2. 共同好友:取交集
  3. 好友推荐:根据标签取交集,交集的成员个数大于某个阈值触发推荐动作

 

Python客户端与命令行函数基本上完全一致,篇幅太长因此不再过多的展示。

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!

 

Redis数据类型:哈希类型和无序集合 目录 哈希hash类型 HSET和HGET 遍历哈希 HSCAN命令 集合set类型 SADD和SREM 接着往下,Redis数据类型中还有哈希类型(hash)和集合类型(set),这两个相信大家也熟悉,哈希类型以前学习数据结构时不是有哈希表嘛,就是存储数据时建立起字段key和值value之间的映射关系,类似于Java中的map。set集合类型和List类似,Redis中的集合类型相当于一个无序的集合,里面不允许有重复的元素,这篇日志就总结下在Redis中对两个数据类型的一些操作。... 阅读详情

相关推荐

Redis 教程系列之Redis 数据类型(四)

Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

xiaoli8748的专栏 891

Redis五大基本数据类型之无序集合(set)

1、set集合 set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。集合中最大的成员数为 2^32 - 1 (4294967295, 每个集合可存储40多亿个成员)。 2、基本命令 所有set命令都是以S开头 2.1、sadd命令 Sadd 命令用于在集合中添加将一个或多个成员。 已经存在于集合的成员元素将被忽略,即不会被覆盖掉。 如果集合 key 不存在,则创建一个只包含添加的元素作成员的集合。 若集合 key 不是集合类型时,返回一个错误。 具体语法 sa

itbestboy的博客 2316

Redis系列之数据类型

Redis支持数据类型有以下5种:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合),下面我们将一一介绍。 String(字符串) string是redis最基本的类型:一个key对应一个value,一个key最大能存储512MB; string类型是二进制安全的:意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 ,为什么说S听类型是二进制安全的呢?这是由于Redis内部对String的定义是一.

吭哧吭哧快乐的小牛码 2万+

Redis===》数据类型之列表、有序、无序,常用命令,RDB、AOF、RDB+AOF

一、redis数据类型 1.列表 redis列表就是redis的字符串类型的集合,按照插入顺序排序 #1.从左边插入数据(后进先出) 127.0.0.1:6379> lpush peopel yyy (integer) 1 127.0.0.1:6379> lrange peopel 0 -1 1) "yyy" 127.0.0.1:6379> lpush peopel yyy man shanghai (integer) 4 127.0.0.1:6379> lrange peopel

Elaina_fang✨✨✨的博客 951

智能车竞赛新手必看:用AD21从零画一块英飞凌TC264核心板(附开源PCB文件)

本文详细介绍了使用Altium Designer 21(AD21)从零开始设计英飞凌TC264核心板的完整流程,涵盖原理图绘制、PCB布线到最终DRC检查的全过程。针对智能车竞赛新手,提供了实用的硬件设计技巧和开源PCB文件,帮助快速掌握TC264核心板开发。

weixin_27017211的博客 241

华为星闪SLE实战:手把手教你用HarmonyOS开发智能家居控制应用(附完整代码)

本文详细介绍了如何利用华为星闪SLE技术,结合HarmonyOS开发智能家居控制应用。通过对比传统无线技术,阐述了星闪SLE在低时延、高可靠性和高并发方面的优势,并提供了从环境搭建、设备发现、连接管理到核心控制代码的完整实战教程,帮助开发者快速上手这一无线短距通信技术。

bert9linguist的博客 500

【Redis】深入探索 Redis 的数据类型 —— 无序集合 Set

Set(集合)是 Redis 数据库中的一种数据类型,它是一种无序的、不重复的数据结构,用于存储一组唯一的元素。Set 在 Redis 中非常实用,因为它提供了高效的成员查找和去重功能,常用于处理一些需要存储唯一值的场景。特点和用途:无序性:Set 中的元素是无序排列的,与元素的插入顺序无关。唯一性:Set 中的元素是唯一的,不允许出现重复元素。高效的成员查找:Redis 提供了高效的成员查找操作,可以快速判断一个元素是否存在于集合中。去重。

qq_61635026的博客 5701

零基础微信理财通基金实操指南(2026版)

先活下来:保证不亏大钱,再想赚钱慢慢变富:年化10%,7年翻倍,这已经很好了开始比完美重要:今天先存100元到零钱通,就是最好的开始现在打开微信,进入理财通,完成第一步风险测评吧!有任何问题可以随时问,我会用最通俗的方式解释。

老韩的Linux云计算架构师进阶之路 1659

redis笔记04-无序集合和有序集合

【无序集合】无需集合的特点: 唯一性,无序性,确定性单个集合的操作作用: 往集合key中增加元素备注:由于具有唯一性,所以增加一个已经存在的元素时会返回0.scard key作用: 返回集合中元素的个数作用: 返回集中中所有的元素作用: 返回集合key中,随机的1个元素.作用: 判断value是否存在key集合中,存在是返回1,不存在返回0。作用: 删除集合中值为 value1 value2的元素;返回值: 忽略不存在的元素后,真正删除掉的元素的个数spop key。

码农兴哥的技术笔记 1065

ovs实现lb负载均衡

负载均衡器的实现原理是通过硬件或软件设备将客户端访问流量根据转发策略分发到多个服务器或设备上,以确保系统的负载均衡。二层负载均衡‌:使用虚拟MAC地址方式,根据OSI模型的二层进行负载均衡。‌四层负载均衡‌:基于IP+端口的负载均衡,主要分析IP层及TCP/UDP层,实现四层负载均衡。‌七层负载均衡‌:从应用层开始,根据虚拟的URL或IP、主机名接收请求,再转向相应的处理服务器。

bobi的博客 942

UE5 Decal混合进阶:如何用DBuffer实现自定义Normal插值(附完整材质配置流程)

本文深入解析了UE5中利用DBuffer技术实现Decal自定义Normal插值的完整流程。通过详细的材质配置步骤和核心算法说明,帮助开发者突破传统混合模式限制,掌握高级法线控制技巧,特别适合需要精细环境细节的3A级项目开发。

table的专栏 220

无序集合与有序集合的遍历

无需集合set(set中的元素必须唯一,不允许有重复元素)和有序集合list(允许元素重复存在的有序对象)皆可用以下方式遍历 1、Iterator迭代器遍历: Iterator it=set.iterator(); while(it.hasNext()){ System.out.println(it.next()); } 2、for-each形式: for(元素类型type 元素变量value:需...

write_hu的博客 815

机器人的“大脑”进化论:从专用控制器到高性能SoC的异构计算时代

摘要:随着AI与机器人技术融合,高性能芯片成为机器人智能化的关键。本文分析了机器人对芯片的核心需求,包括多模态数据处理、实时控制和智能决策能力。系统级芯片(SoC)因集成CPU、GPU/NPU等模块而成为主流选择。市场呈现分层格局:中低端设备(如扫地机器人)采用"MCU+轻量SoC"方案,满足基础功能;高端机器人则依赖"高性能SoC+独立GPU"处理复杂任务。除主控芯片外,完整的机器人系统还需传感器接口、驱动、通信等配套芯片。未来,芯片技术的进步将持续推动机器人智能化

致力于lidar应用开发 78

Redis数据结构:Set类型全面解析

Set 类型是一个无序并唯一的键值集合,它的存储顺序不会按照插入的先后顺序进行存储。Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1)。相对于列表,集合也有两个特点:无序、不可重复 一个集合最多可以存储 2^32-1 个元素。概念和数学中个的集合基本类似,数学集合的概念是指具有某种特定性质的具体的或抽象的对象汇总而成的集体。

栗筝i的博客 7498

C#【通用方法】字节数组添加、移除、获取的方法类(妙用List<byte>,开发中常用)

C#【通用方法】添加移除字节的方法类(妙用List,开发中常用)

星Yeah 的博客 3345

使用R语言获取data.frame中指定列的数据

这里以"df"为例,包含三列数据:“列1”、“列2"和"列3”。通过以上代码,我们成功获取了"列1"和"列3"的数据,并将它们分别存储在了变量"column1"和"column3"中。假设我们有一个名为"df"的data.frame,其中包含了多个列,我们想要提取其中的某一列。符号,我们可以从data.frame中提取出"列2"的数据,并将其赋值给变量"column2"。符号,我们可以轻松提取出data.frame中特定列的数据,并将其存储在变量中供进一步的分析和处理使用。假设我们要获取"列2"的数据。

DevRevolt的博客 2314

Redis 数据类型 Set 集合

集合类型也是保存多个字符串类型的元素的,但和列表类型不同的是,集合中元素之间是⽆序的并且元素不允许重复,如下图所⽰。⼀个集合中最多可以存储 2^32 - 1 个元素。Redis 除了⽀持集合内的增删查改操作,同时还⽀持多个集合取交集、并集、差集,合理地使⽤好集合类型,能在实际开发中解决很多问题。:集合中的元素是无序的,不能通过索引访问元素。:集合中的元素是唯一的,不允许重复。:集合内部使用哈希表实现,因此添加、删除和查找操作的时间复杂度接近于 O(1)。

2301_79881188的博客 895

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

10. Redis 五种数据类型-集合Set

Redis 数据类型-Set Redis 中的Set 数据结构存储的是一组无序且唯一的元素集合. 1. 常用命令 操作命令 描述 返回值 smembers $key 获取set中所有元素 sadd $key member[member [member[member…] 向set中添加多个元素,支持批量操作 如果key不存在,则自动创建集合.对已存在的member 会自行忽...

Java 程序源 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【Redis】Set集合、Zset有序集合以及其它数据类型

set集合、zset有序集合以及其它类型

weixin_69380220的博客 1352

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Redis存储⑤Redis五大数据类型之 List 和 Set。

Redis存储⑤Redis五大数据类型之 List 和 Set。(常见命令+集合间命令+内部编码+使用场景)

参考书籍:《C语言程序设计》《数据结构》《C++ Primer》《Effective C++》《STL源码剖析》《现代操作系统》《UNIX环境高级编程》《图解TCP/IP》《图解HTTP》《Linux高性能服务器编程》《剑指Offer》《算法导论》 2756

redis 数据类型新手练习系列——set类型

Redis支持多种数据类型,包括字符串、哈希、列表、集合、有序集合等基本类型,以及位图、超日志等扩展类型。其中Set集合具有无序性和唯一性特点,支持高效的添加、删除和查找操作。常用命令包括SADD添加元素、SREM删除元素、SMEMBERS查看元素等。集合运算支持交集、并集和差集操作,适用于共同兴趣查找、推荐系统等场景。通过SCAN命令可安全遍历集合键,避免生产环境使用阻塞性的KEYS命令。这些特性使Redis集合成为处理无序唯一数据的理想选择。

hnlucky的博客 864

【redis】数据类型之set

Redis中的SET数据类型是一种无序的集合,它允许你存储不重复的元素。SET类型提供了许多有用的操作,比如添加元素、删除元素、检查元素是否存在、计算集合的交集、并集和差集等。set(集合):其实就是数学中的集合,集合中元素要具备三个特性:确定性、无序性、互异性。确定性:一个元素要么属于集合,要么不属于集合。无序性:集合中每个元素的地位相当,没有顺序。互异性:集合中的元素都是不同,也就是一个元素在一个集合中只能出现一次。有关set类型的命令可以通过help @set命令来查看。

morris 1万+

【Redis 五】Jedis操作Redis的Set(集合对象)类型

一、操作Set(集合对象)类型 常言道:神龙生九子,九子各不同,对于Redis来说Set也是其得力的“干将”,Set集合也是用来保存多个字符串,和平常的Set一样是无序,无重复元素的,所以不能像List集合那样通过索引下标来获取元素,而是直接获取全部元素,或者随机获取到某一个元素。但是对于Set集合来说更多的优点在于可以求交集、并集、差集这就是其重要的属性,接着一起来看看怎么操...

LCF_lxf_ldy的博客 4384

Redis 数据类型set(集合)

Redis 的 Set(集合)是一种无序的、不重复的数据结构。Set 类型非常适合用于存储唯一性元素,并且提供了多种集合操作,如交集、并集和差集等。Set 中的每个元素都是唯一的字符串,这使得 Set 成为实现“标签”、“唯一性检查”、“关系图”等场景的理想选择。

weixin_47363690的博客 1326

Redis-五大数据类型-Set(集合)

与List类似是一个列表功能,但Set是自动排重的,当需要存储一个列表数据,又不希望出现重复数据时,Set是一个很好的选择。Set是String类型的无序集合,它底层其实是一个value为null的hash表,所以添加、删除、查找的时间复杂度都是O(1)。一般来说,一个算法如果是O(1),随着数据增加,查找数据的时间不变。集合中最大的成员数为232−12^{32}-1232−1( 每个集合超过40亿个元素)。

乐风的博客 699

Redis教程(五):Set数据类型例子解析

Redis 的 Set 数据类型是一个无序集合,它能够存储一组不重复的字符串元素。:返回一个集合和其它集合的差集,并将结果保存在指定的新集合中。:所有给定集合的并集存储在 destination 集合中。:返回给定所有集合的交集,并将结果保存在指定的新集合中。:从集合中随机返回一个或多个元素,但不移除它们。:从集合中随机移除并返回一个元素。:返回一个集合和其它集合的差集。:从集合中移除一个或多个成员。:返回给定所有集合的交集。:返回所有给定集合的并集。:返回集合中的所有成员。:获取集合的成员数。

IT老农民的博客 870
上一篇: Redis系列(四)、数据类型之列表List
下一篇: Redis系列(六)、数据类型之有序集合ZSet(sorted_set)
王义凯_Rick
王义凯_Rick 领域专家: 大数据技术领域 领域专家: 大数据技术领域
博客等级 码龄14年 858粉丝 162原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王义凯_Rick

遇见即是缘,路过就给个评论吧~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值