集合(无序,区别有序集合)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合(无序,区别有序集合)相关的知识,希望对你有一定的参考价值。

集合 set 相关命令

集合的性质: 唯一性,无序性,确定性
无序性,例:{1,2}=={2,1}
唯一性,每一个值都是唯一的

注: 在string和link的命令中,可以通过range 来访问string中的某几个字符或某几个元素
但,因为集合的无序性,无法通过下标或范围来访问部分元素.

因此想看元素,要么随机先一个,要么全选

sadd key value1 value2

作用: 往集合key中增加元素

技术图片

srem value1 value2

作用: 删除集合中集为 value1 value2的元素
返回值: 忽略不存在的元素后,真正删除掉的元素的个数

技术图片

spop key

作用: 返回并删除集合中key中1个随机元素
随机--体现了无序性

技术图片
(spop会弹出/删除key中的元素,可以用这个来抽奖,第一名抽出来,第二名,第三名...)

srandmember key

作用: 返回集合key中,随机的1个元素.
技术图片
(和spop不同,不会弹出/删除key中的元素)

sismember key value

作用: 判断value是否在key集合中
是返回1,否返回0

技术图片

smembers key

作用: 返回集中中所有的元素

scard key

作用: 返回集合中元素的个数
技术图片

smove source dest value

作用:把source中的value删除,并添加到dest集合中

技术图片

sinter key1 key2 key3

作用: 求出key1 key2 key3 三个集合中的交集,并返回
redis 127.0.0.1:6379> sadd s1 0 2 4 6
(integer) 4
redis 127.0.0.1:6379> sadd s2 1 2 3 4
(integer) 4
redis 127.0.0.1:6379> sadd s3 4 8 9 12
(integer) 4
redis 127.0.0.1:6379> sinter s1 s2 s3
1) "4"
redis 127.0.0.1:6379> sinter s3 s1 s2
1)"4"

sinterstore dest key1 key2 key3

作用: 求出key1 key2 key3 三个集合中的交集,并赋给dest
技术图片

suion key1 key2.. Keyn

作用: 求出key1 key2 keyn的并集,并返回
技术图片

sdiff key1 key2 key3

作用: 求出key1与key2 key3的差集
即key1-key2-key3

技术图片

以上是关于集合(无序,区别有序集合)的主要内容,如果未能解决你的问题,请参考以下文章

Redis数据操作--无序集合

关于集合中元素的有序无序的易混淆点

redis数据结构之无序集合(set)有序集合(zset)基数(HyperLogLog)

redis数据结构之无序集合(set)有序集合(zset)基数(HyperLogLog)

Python列表元组集合字典的区别和相互转换

Java集合体系结构(ListSetCollectionMap的区别和联系)