本文讲解redis中的Set命令的基础操作。
以下是 Redis Set 类型命令的案例:
SADD key member1 [member2 ...]
:
SADD fruits "apple" "banana" "orange"
创建名称为 fruits 的集合,并向其中添加三个水果成员。
SMEMBERS key
:
SMEMBERS fruits
返回 fruits 集合所有的元素:“apple”, “banana”, “orange”。
SISMEMBER key member
:
SISMEMBER fruits "grape"
判断指定成员 “grape” 是否存在于 fruits 集合中。返回值:0(不存在)。
SCARD key
:
SCARD fruits
返回 fruits 集合中的元素数量:3。
SREM key member1 [member2 ...]
:
SREM fruits "banana"
从 fruits 集合中移除成员 “banana”。
SPOP key [count]
:
SPOP fruits
随机移除并返回 fruits 集合中的一个元素,例如 “apple”。如果省略 count 参数,则默认弹出一个随机元素。
SRANDMEMBER key [count]
:
SRANDMEMBER fruits 2
随机返回 fruits 集合中的两个元素,不会在集合中移除这些元素。例如 [“banana”, “orange”]。
SINTER key1 [key2 ...]
:
SADD fruits1 "apple" "orange"
SADD fruits2 "banana" "orange"
SINTER fruits fruits1 fruits2
返回给定集合(fruits1 和 fruits2)和 fruits 集合的交集的所有元素:“orange”。
SUNION key1 [key2 ...]
:
SUNION fruits1 fruits2
返回给定集合 fruits1 和 fruits2 的并集的成员 “apple”, “banana”, “orange”。
SDIFF key1 [key2 ...]
:
SDIFF fruits1 fruits
返回属于 fruits1 集合但不属于 fruits 集合的成员:“orange”。
SINTERSTORE destination key1 [key2 ...]
:
SADD dict1 "hello" "world"
SADD dict2 "hello" "everyone"
SINTERSTORE both dict1 dict2
创建一个名称为 both 的新集合,并将字典 dict1 和 dict2 的交集保存到该集合中。both 集合中的元素为:“hello”。
SUNIONSTORE destination key1 [key2 ...]
:
SUNIONSTORE all_fruits fruits1 fruits2
创建一个名称为 all_fruits 的新集合,并将 fruits、fruits1 和 fruits2 集合的并集保存到该集合中。all_fruits 集合中的元素为:“apple”, “banana”, “orange”。
SDIFFSTORE destination key1 [key2 ...]
:
SDIFFSTORE dict_only dict1 dict2
创建一个名称为 dict_only 的新集合,并将属于 dict1 但不属于 dict2 的成员保存到该集合中。dict_only 集合中的元素为:“world”。
假设某个网站要查询文章信息,每篇文章都有一个关键词标签,为了方便检索,把所有关于某个专题的文章存储到一起,并将该专题所包含的所有文章关键词标签全部保存到以该专题名称为键名的集合中,例如“篮球”的文章对应的集合名称就叫做 “basketball_tags”。
举个例子,在 Redis 中,可以通过以下命令将文章保存并添加到相应的集合中:
SADD basketball_tags "NBA" "篮球教学" "篮球比赛"
以上命令会向 basketball_tags 集合中添加三个成员 “NBA”、“篮球教学”、“篮球比赛”。
如果需要获取属于“篮球”专题下所有文章的关键词标签,可以使用以下命令查询:
SMEMBERS basketball_tags
执行以上命令会返回成员 (“NBA”, “篮球教学”, “篮球比赛”)。
这样,网站就能成功地利用 Redis 的 Set 数据类型存储和检索文章关键词标签了。