五大数据类型-Set(集合)
简介
与List类似是一个列表功能,但Set是自动排重的,当需要存储一个列表数据,又不希望出现重复数据时,Set是一个很好的选择。
Set是String类型的无序集合,它底层其实是一个value为null的hash表,所以添加、删除、查找的时间复杂度都是O(1)。
一般来说,一个算法如果是O(1),随着数据增加,查找数据的时间不变。
集合中最大的成员数为 2 32 − 1 2^{32}-1 232−1( 每个集合超过40亿个元素)。
常用命令
敲命令前先清除所有key和values
FLUSHALL
-
sadd key value1 value2……将一个或多个元素添加到集合key中,已经存在的元素将被忽略。
sadd k1 v1 v2 v2 v3 v4 v5 v6向集合中添加值,最终只有v1 v2 v3 v4 v5 v6
-
smembers key取出该集合的所有元素。
smembers k1
-
srandmember key count随机取出集合中count个元素,但不会删除。
srandmember k1 2 随机取出集合中的2个元素
-
sismember key value判断集合key中是否含有value元素,如有返回1,否则返回0。
sismember k1 v1
-
scard key返回该集合的元素个数。
scard k1
-
smove sourcekey destinationkey value将value元素从sourcekey集合移动到destinationkey集合中。
如果 sourcekey集合不存在或不包含指定的 value元素,则 smove 命令不执行任何操作,仅返回 0。
smove k1 k2 v5 将元素v5从集合k1中移动到集合k2
-
srem key value1 value2……删除集合中的一个或多个成员元素,不存在的成员元素会被忽略。
srem k1 v1 v2 删除v1 v2
-
spop key随机删除集合中一个元素并返回该元素。
spop k1 随机删除一个元素,并返回
-
sinter key1 key2返回两个集合的交集元素。
sadd k1 v1 v2 v3 v4 v5 v6 往k1添加值 sadd k2 v5 v6 往k2添加值 smembers k1 查看k1的值 smembers k2 查看k2的值 sinter k1 k2
-
sunion key1 key2返回两个集合的并集元素。
sunion k1 k2
-
sdiff key1 key2返回两个集合的差集元素(key1中的,不包含key2)
sdiff k2 k1 返回v4 v5