文章目录
Redis 集合(Set)
Redis的集合(Set)是一种无序的字符串类型数据结构,具有以下特点:
- 集合中的成员都是唯一的,这意味着集合中不能出现重复的数据。
- 集合是通过哈希表实现的,所以它的添加、删除、查找操作的时间复杂度为O(1)。
- 集合中最大的成员数为2^32 - 1(约40亿个),每个集合可存储40多亿个成员。
实际操作时,可以通过SADD、 SISMEMBER、 SCARD、 SREM和SRANDMEMBER等命令对集合进行添加、删除、查看元素个数、随机取出元素等操作。另外集合对象的编码可以是intset或hashtable。使用Redis的Set数据结构可以有效地进行去重、分类、共同好友等功能的实现。
实例
以下是一些Redis集合(Set)命令的示例:
- SADD命令:向集合添加一个或多个成员。
SADD myset "Hello" "World"
- SISMEMBER命令:检查成员是否是集合的成员。
SISMEMBER myset "Hello"
- SCARD命令:获取集合的成员数量。
SCARD myset
- SREM命令:从集合中移除一个或多个成员。
SREM myset "Hello"
- SRANDMEMBER命令:随机返回集合中的一个成员。
SRANDMEMBER myset
- SPOP命令:随机移除并返回集合中的一个成员。
SPOP myset
Redis 集合命令
以下是 Redis 集合基本命令的表格:
命令 | 描述 |
---|---|
SADD key member1 [member2 …] | 向集合添加一个或多个成员。 |
SMEMBERS key | 返回集合中的所有成员。 |
SISMEMBER key member | 检查成员是否是集合的成员。 |
SCARD key | 获取集合的成员数量。 |
SREM key member1 [member2 …] | 从集合中移除一个或多个成员。 |
SRANDMEMBER key [count] | 随机返回集合中的一个或多个成员。 |
SPOP key [count] | 随机移除并返回集合中的一个或多个成员。 |
SMOVE source destination member | 将成员从一个集合移动到另一个集合。 |
SDIFF key1 [key2 …] | 返回第一个集合与其他集合的差集。 |
SDIFFSTORE destination key1 [key2 …] | 将差集存储在另一个集合中。 |
SINTER key1 [key2 …] | 返回多个集合的交集。 |
SINTERSTORE destination key1 [key2 …] | 将交集存储在另一个集合中。 |
SUNION key1 [key2 …] | 返回多个集合的并集。 |
SUNIONSTORE destination key1 [key2 …] | 将并集存储在另一个集合中。 |
SMEMBERS key | 返回集合中的所有成员。 |
SISMEMBER key member | 检查成员是否是集合的成员。 |
SCARD key | 获取集合的成员数量。 |
SREM key member1 [member2 …] | 从集合中移除一个或多个成员。 |
SRANDMEMBER key [count] | 随机返回集合中的一个或多个成员。 |
SPOP key [count] | 随机移除并返回集合中的一个或多个成员。 |
SMOVE source destination member | 将成员从一个集合移动到另一个集合。 |
SDIFF key1 [key2 …] | 返回第一个集合与其他集合的差集。 |
SDIFFSTORE destination key1 [key2 …] | 将差集存储在另一个集合中。 |
SINTER key1 [key2 …] | 返回多个集合的交集。 |
SINTERSTORE destination key1 [key2 …] | 将交集存储在另一个集合中。 |
SUNION key1 [key2 …] | 返回多个集合的并集。 |
SUNIONSTORE destination key1 [key2 …] | 将并集存储在另一个集合中。 |