Redis数据类型set详解(redis数据类型set)

Redis 是一个基于key-value存储数据库,但是比传统的关系型数据库多了些特性,而 SET 数据类型是 Redis 中一个值得关注且实用的数据类型。

SET 数据类型的特性

SET 数据类型是 redis 中的无序集合(unordered set),可以以字符串的形式存储在 redis 中,每个集合中的字符串是独一无二的,不能存储相同的字符串,如果尝试添加相同的字符串将会被忽略而不会添加到集合中。 Redis SET 提供大量有用的操作:

1、SMOVE

SMOVE 将指定的元素从一个 SET 移动到另一个 SET 中:

redis> SADD myset1 “a” “b” “c”

(integer) 3

redis> SADD myset2 “d”

(integer) 1

redis> SISMEMBER myset2 “a”

(integer) 0

redis> SMOVE myset1 myset2 “a”

(integer) 1

redis> SISMEMBER myset2 “a”

(integer) 1

2、SDIFF

SDIFF 返回集合的差集,只返回在第一个集合而不在其他集合的元素:

redis> SADD myset1 “a” “b” “c” “d”

(integer) 4

redis> SADD myset2 “c”

(integer) 1

redis> SADD myset3 “b”

(integer) 1

redis> SDIFF myset1 myset2 myset3

1) “a”

2) “d”

3、SUNION

SUNION 返回集合的并集:

redis> SADD myset1 “a” “b” “c”

(integer) 3

redis> SADD myset2 “c” “d” “e”

(integer) 3

redis> SUNION myset1 myset2

1) “d”

2) “a”

3) “c”

4) “b”

5) “e”

以上只是 SET 的操作的一小部分,其它的操作可以去 Redis 官方文档 查看。

总结

SET 数据类型是 Redis 中一个不可或缺的数据类型,基于底层散列实现快速读写,同时支持大量有用的操作,比如 union,intersection,difference,sdiffstore 等操作,使其在程序中有着广泛的应用。


数据运维技术 » Redis数据类型set详解(redis数据类型set)