首页 > 数据库 >Redis之set

Redis之set

时间:2024-06-04 09:44:58浏览次数:42  
标签:set SADD 0.1 myset Redis 6379 127.0 integer

Set

  • Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。(无序不重复)

  • 集合对象的编码可以是 intset 或者 hashtable。

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

案例

127.0.0.1:6379> SADD myset hello               #set集合中添加元素
(integer) 1
127.0.0.1:6379> SADD myset lili
(integer) 1
127.0.0.1:6379> SADD myset love ll
(integer) 2
127.0.0.1:6379> SMEMBERS myset                 #查看指定set的所有值
1) "love"
2) "lili"
3) "ll"
4) "hello"
127.0.0.1:6379> SISMEMBER myset hello          #判断某一个值是否存在set中
(integer) 1
127.0.0.1:6379> SISMEMBER myset lili
(integer) 1
  • scard
127.0.0.1:6379> scard myset                   #获取set集合中元素的个数
(integer) 4
  • SREM
127.0.0.1:6379> SREM myset hello              #移除set中的指定元素
(integer) 1
127.0.0.1:6379> SMEMBERS myset
1) "love"
2) "lili"
3) "ll"
  • SMEMBERS
127.0.0.1:6379> SMEMBERS myset                 #随机抽取set中的一个元素
1) "love"
2) "lili"
3) "ll"
127.0.0.1:6379> SRANDMEMBER myset
"love"
127.0.0.1:6379> SRANDMEMBER myset
"ll"
127.0.0.1:6379> SRANDMEMBER myset
"love"
127.0.0.1:6379> SRANDMEMBER myset
"ll"
127.0.0.1:6379> SRANDMEMBER myset 2            #随机抽取指定个数的元素
1) "lili"
2) "ll"
127.0.0.1:6379> SRANDMEMBER myset 2
1) "love"
2) "ll"
  • SPOP
127.0.0.1:6379> SMEMBERS myset
1) "love"
2) "lili"
3) "ll"
127.0.0.1:6379> SPOP myset                    #随机删除set集合中的一个元素
"ll"
127.0.0.1:6379> SPOP myset
"love"
127.0.0.1:6379> SMEMBERS myset
1) "lili"
  • SMOVE
127.0.0.1:6379> SADD myset hello
(integer) 1
127.0.0.1:6379> SADD myset hello1
(integer) 1
127.0.0.1:6379> SADD myset hello2
(integer) 1
127.0.0.1:6379> SADD myset hello3
(integer) 1

127.0.0.1:6379> SADD myset2 set2
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> SMOVE myset myset2 hello              #将一个指定的值移动到另外以一个set
(integer) 1
127.0.0.1:6379> smembers myset
1) "hello3"
2) "hello1"
3) "hello2"
127.0.0.1:6379> smembers myset2
1) "hello"
2) "set2"
  • SDIFF&SINTER&sunion
127.0.0.1:6379> SADD key1 a
(integer) 1
127.0.0.1:6379> SADD key1 b
(integer) 1
127.0.0.1:6379> SADD key1 c
(integer) 1
127.0.0.1:6379> SADD key2 c
(integer) 1
127.0.0.1:6379> SADD key2 d
(integer) 1
127.0.0.1:6379> SADD key2 e
(integer) 1
127.0.0.1:6379> SDIFF key1 key2                #差集,a和b做差集 = a有的b没有,前边集合和后边集合作比较,找出前边集合和后边集合不同的
1) "a"
2) "b"

127.0.0.1:6379> SINTER key1 key2               #交集
1) "c"

127.0.0.1:6379> sunion key1 key2               #并集
1) "d"
2) "b"
3) "c"
4) "a"
5) "e"

标签:set,SADD,0.1,myset,Redis,6379,127.0,integer
From: https://www.cnblogs.com/OpenSourceSite/p/18230096

相关文章

  • 笔记5:TensorDataset、DataLoader及数据集划分
    TensorDataset转自:https://www.cnblogs.com/miraclepbc/p/14333299.html导入相关包fromtorch.utils.dataimportTensorDataset特征与标签合并HRdataset=TensorDataset(X,Y)模型训练forepochinrange(epochs):foriinrange(num_batch):x,y=HRda......
  • Redis之list
    Redis列表(List)Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含2^32-1个元素(4294967295,每个列表超过40亿个元素)。list可以定义一些规则,使它作为栈、队列或双端队列。案例LPUSH&RPUSH127.......
  • 面试必会->Redis篇
    01-你们项目中哪里用到了Redis?在我们的项目中很多地方都用到了Redis,Redis在我们的项目中主要有三个作用:使用Redis做热点数据缓存/接口数据缓存使用Redis存储一些业务数据,例如:验证码,用户信息,用户行为数据,数据计算结果,排行榜数据等使用Redis实现分布......
  • [redis 源码走读] - 跳跃表(skiplist)
    作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬学习必须往深处挖,挖的越深,基础越扎实!阶段1、深入多线程阶段2、深入多线程设计模式阶段3、深入juc源码解析阶段4、深入jdk其余源码解析......
  • messageBox->setWindowFlags(Qt::FramelessWindowHint | Qt::Tool);讲解
    当我们调用setWindowFlags方法时,我们在设置窗口的标志。这些标志控制着窗口的外观和行为。在这个例子中,我们使用了Qt::FramelessWindowHint和Qt::Tool两个标志。Qt::FramelessWindowHint:这个标志告诉Qt不要绘制窗口的边框和标题栏。这样可以创建一个没有边框的窗口,通常用......
  • synchronized、Lock本地锁和Redisson分布式锁的简单使用
    文章目录概念准备工作synchronized本地锁演示JUC包的Lock本地锁演示Redisson的RLock分布式锁演示源码地址参考来源概念redisson是一个简单易用的Redis客户端工具。不仅如此,它还具备分布式锁的功能准备工作快速整合SSMP请参考我这篇文章SpringBoot快速整合Spring......
  • redis - [02] 安装部署
    在Windows和Linux操作系统下的安装部署  一、windows版(1)访问redis下载地址:https://github.com/tporadowski/redis/releases(2)将Redis-x64-5.0.14.1.zip下载并解压到合适的目录(3)打开cmd窗口,切换到该目录下运行:redis-server.exeredis.windows.conf运行之后,redis服务就......
  • redis自学(45)缓存同步
                             整个多级缓存的架构  ......
  • redis - [01] 概述
    题记部分 一、什么是redis  是一个由SalvastoreSanfilippo使用ANSIC语言编写的key-value存储系统,遵守BSD协议、支持网络、可基于内存、分布式、可选持久性的跨平台的非关系型数据库,并提供多种语言的API。Redis通常被称为数据结构服务器,因为值可以是字符串、哈希、列表、......
  • 【Redis】Redis集群脑裂的原因及解决方案
    Redis集群脑裂(Split-Brain)是指在集群模式下,网络分区或节点故障导致集群中的一部分节点失去与其他节点的连接,从而出现多个孤立的子集群,各自认为自己是独立的主集群。这种情况可能导致数据不一致和服务不可用。脑裂的成因网络分区:网络故障导致集群中的部分节点无法互相通信......