Redis 集合是一种无序的、不重复的数据结构,用于存储多个字符串元素。集合中的每个元素都是唯一的,因此集合中的元素不能重复。集合的实现类似于散列表,底层数据结构为哈希表。
添加元素
SADD key member [member ...]
向集合中添加一个或多个成员。如果成员已经存在于集合中,则忽略该操作,但不会导致错误。返回值是成功添加的新成员数量。
SADD myset "hello" SADD myset "world"
上述命令将“hello”和“world”添加到名为myset
的集合中。假设这两个元素之前不存在于集合中,那么返回值将是2。
获取集合中的所有成员
SMEMBERS key
返回集合中所有的成员。如果键不存在,则返回空数组。
SMEMBERS myset
这将返回集合myset
中的所有成员。
判断成员是否存在于集合中
SISMEMBER key member
检查给定的成员是否存在于集合中。如果存在,则返回1;否则返回0。
SISMEMBER myset "hello"
上述命令会检查元素“hello”是否存在于集合myset
中,并返回相应的结果。
删除成员
SREM key member [member ...]
从集合中删除一个或多个成员。如果成员不存在于集合中,则忽略该操作。返回值是从集合中删除的成员数量。
SREM myset "hello"
上述命令将从集合myset
中删除元素“hello”。
获取集合的基数(成员数量)
SCARD key
返回集合中成员的数量。
SCARD myset
上述命令将返回集合myset
中的成员数量。
随机获取成员
SRANDMEMBER key [count]
随机返回集合中的一个或多个成员。如果count为正数,则返回count个不同的成员。如果count为负数,则返回count个可能有重复的成员。
SRANDMEMBER myset SRANDMEMBER myset -2
第一个命令将随机返回集合myset
中的一个成员。第二个命令将返回集合myset
中的两个可能有重复的成员。
随机删除成员
SPOP key [count]
随机移除并返回集合中的一个或多个成员。如果count为正数,则返回count个不同的成员。如果count为负数,则返回count个可能有重复的成员。
SPOP myset SPOP myset -2
第一个命令将随机移除并返回集合myset
中的一个成员。第二个命令将移除并返回集合myset
中的两个可能有重复的成员。
集合运算
SINTER key [key ...]
计算多个集合的交集。返回交集的所有成员。
SINTER set1 set2
上述命令将返回集合set1
和set2
的交集。
SUNION key [key ...]
计算多个集合的并集。返回并集的所有成员。
SUNION set1 set2
上述命令将返回集合set1
和set2
的并集。
SDIFF key [key ...]
计算多个集合的差集。返回第一个集合相对于其他集合的差集成员。
SDIFF set1 set2
上述命令将返回集合set1
中相对于集合set2
的差集成员。
SINTERSTORE destination key [key ...]
计算多个集合的交集并将结果保存到新的集合。
SINTERSTORE newset set1 set2
上述命令将集合set1
和set2
的交集保存到新集合newset
中。
SUNIONSTORE destination key [key ...]
计算多个集合的并集并将结果保存到新的集合。
SUNIONSTORE newset set1 set2
上述命令将集合set1
和set2
的并集保存到新集合newset
中。
SDIFFSTORE destination key [key ...]
计算多个集合的差集并将结果保存到新的集合。
SDIFFSTORE newset set1 set2
上述命令将集合set1
中相对于集合set2
的差集成员保存到新集合newset
中。
遍历集合
SSLOWMEMBER key [iterator]
迭代集合中的元素。这个命令通常用于遍历大型集合,避免一次性返回大量数据。
SSLOWMEMBER myset
上述命令将迭代集合myset
中的所有成员。
这些命令涵盖了Redis集合的基本操作,包括添加、删除、查询、运算和遍历。理解这些命令对于使用Redis集合进行数据管理至关重要。