摘要:本命令的返回值是成功加入的元素数量。获得集合中的所有元素命令会返回集合中的所有元素。判断元素是否在集合中当值存在时返回,不存在时返回。命令用来对多个集合执行并集运算。当为正数时,会随机从集合里获得个不重复的元素。整理自入门指南第二版。
介绍
集合类型的常用操作是向集合中加入或删除元素、判断某个元素是否存在等,由于集合类型在 Redis 内部是使用值为空的散列表实现的,所以这些操作的时间复杂度都是O(1)。
命令1.增加/删除元素
SADD key member [member] SREM key member [member]
SADD 命令用来向集合中增加一个或多个元素,如果键不存在则会自动创建。因为在一个集合中不能有相同的元素,所以如果要加入的元素已经存在于集合中就会忽略这个元素。本命令的返回值是成功加入的元素数量。
redis> SADD letters a (integer) 1 redis> SADD letters a b c (integer) 2
第二条SADD命令的返回值为2是因为元素“a”已经存在,所以实际上只加入了两个元素。
SREM 命令用来从集合中删除一个或多个元素,并返回删除成功的个数。
redis> SREM letters c d (integer) 1
由于元素“d”在集合中不存在,所以只删除了一个元素,返回值为 1。
2.获得集合中的所有元素
SMEMBERS key
SMEMBERS 命令会返回集合中的所有元素。
redis> SMEMBERS letters 1) "b" 2) "a"
3.判断元素是否在集合中
SISMEMBER key member
当值存在时返回1,不存在时返回0。
redis> SISMEMBERS letters a (integer) 1 redis> SISMEMBERS letters d (integer) 0
4.集合间运算
SDIFF key [key ...] SINTER key [key ...] SUNION key [key ...]
SDIFF 命令用来对多个集合执行差集运算。
redis> SADD setA 1 2 3 (integer) 3 redis> SADD setB 2 3 4 (integer) 3 redis> SDIFF setA setB 1) "1" redis> SDIFF setB setA 1) "4"
SDIFF 命令支持同时传入多个键
redis> SADD setC 2 3 (integer) 2 redis> SDIFF setA setB setC 1) "1" 计算顺序为:setA - setB 之后的结果 - setC
SINTER 命令用来对多个集合执行交集运算。
redis> SINTER setA setB 1) "2" 2) "3"
SINTER 命令同样支持同时传入多个键。
redis> SINTER setA setB setC 1) "2" 2) "3"
SUNION 命令用来对多个集合执行并集运算。
redis> SUNION setA setB 1) "1" 2) "2" 3) "3" 4) "4"
SUNION 命令同样支持多个键,这里就不赘述了。
5.获得集合中元素个数
SCARD key
例如:
redis> SMEMBERS letters 1) "b" 2) "a" redis> SCARD letters (integer) 2
6.进行集合运算并将结果存储
SDIFFSTORE destination key [key ...] SINTERSTORE destination key [key ...] SUNIONSTORE destination key [key ...]
SDIFFSTORE 命令与 SDIFF命令功能一样,唯一的区别就是前者不会直接返回运算结果,而是将结果存储在 destiantion 键中。
SDIFFSTORE 命令常用于需要进行多步集合运算的场景中,如需要先计算差集再将结果和其他键计算交集。
SINTERSTORE 和 SUNIONSTORE 命令与之类似,不再赘述。
7.随机获得集合中的元素
SRANDMEMBER key [count]
SRANDMEMBER 命令用来随机从集合中获取一个元素。
redis> SRANDMEMBER letters "a" redis> SRANDMEMBER letters "b" redis> SRANDMEMBER letters "a"
还可以传递count参数来一次随机获得多个元素,根据count的正负不同,具体表现也不同。
(1)当count为正数时,SRANDMEMBER 会随机从集合里获得 count 个不重复的元素。如果 count 的值大于集合中的元素个数,则 SRANDMEMBER 会返回集合中的全部元素。
(2)当count为负数时,SRANDMEMBER 会随机从集合里获得|count|个的元素,这些元素都有可能相同。
redis> SADD letters c d (integer) 2 目前letters集合中有 “a”,“b”,“c”,“d”。 redis> SRANDMEMBER letters 2 1) "a" 2) "c" redis> SRANDMEMBER letters 2 1) "a" 2) "b" redis> SRANDMEMBER letters 100 1) "b" 2) "a" 3) "c" 4) "d" redis> SRANDMEMBER letters -2 1) "b" 2) "b" redis> SRANDMEMBER letters -10 1) "b" 2) "b" 3) "a" 4) "c" 5) "b" 6) "a" 7) "b" 8) "d" 9) "b" 10) "b"
8.从集合中弹出一个元素
SPOP key
因为集合是无序的,所以弹出元素也是随机的。
redis> SPOP letters "b" redis> SMEMBERS letters 1) "a" 2) "c" 3) "d"
整理自《Redis 入门指南第二版》。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/36485.html
摘要:五大数据类型类型是最基本的类型,你可以理解成与一模一样的类型,一个对应一个。类型是二进制安全的。意思是的可以包含任何数据。类型是最基本的数据类型,一个中字符串最多可以是哈希是一个键值对集合。的成员是唯一的但分数却可以重复。 Redis 五大数据类型 1、String 类型 string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value...
摘要:上篇文章我们介绍了如何在中安装,本文我们来了解下中的五种数据类型。,通过上面的介绍,相信小伙伴们对五大数据类型都有一个大致的认识了,接下来我们就来看看这五种数据类型要怎么操作。表示秒,返回表示这个的有效期还剩秒。 上篇文章我们介绍了如何在Linux中安装Redis,本文我们来了解下Redis中的五种数据类型。 本文是Redis系列的第二篇文章,了解前面的文章有助于更好的理解本文: ...
摘要:开始结束查询闭区间分数在之间的查询闭区间分数在之间的取结果第一个开始,取个某下对应的值,作用是删除元素区间统计某个区间的值的个数值,作用是获得下标值,查询某个值的排名对应值获得分数值,作用是逆序获得下标值倒序结束开始 1、Redis key 关键字 exists key的名字,判断某个key是否存在 move key db --->当前库就没有了,被移除了 expire key ...
摘要:学习基础入门查询资料没有找到从入门到中的应用也没有到框架中的详细介绍故自己整理有错误的地方欢迎指出一安装安装解压版安装将下载好的安装包放置到目录下解压进入输入完成后输入进入目录在任意目录启动修改配置文件如需要在后台运行,把该项 redis学习-基础入门 查询资料没有找到 redis 从入门到java中的应用, 也没有到框架 spring,springboot中的详细介绍,故自己整理,有...
摘要:入门简介是一个开源的高性能键值对数据库。截止到年月日,发布的最新稳定版本是。第一个参数表示多长时间,第二个表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。 showImg(https://segmentfault.com/img/bVtyeI); Redis入门 简介 Remote Dictionary Server (Redis) Redis是一个开源的高...
阅读 2737·2021-11-23 09:51
阅读 1311·2021-11-15 11:36
阅读 2699·2021-10-13 09:40
阅读 1199·2021-09-28 09:35
阅读 12169·2021-09-22 15:00
阅读 1223·2019-08-29 13:56
阅读 2808·2019-08-29 13:04
阅读 2571·2019-08-28 18:06