redis存储集合
时间: 2023-07-09 11:09:05 浏览: 110
redis存储List集合
Redis中的集合(Set)是一个无序的、不重复的元素集合。它的实现使用了哈希表(Hash Table),所以添加、删除和查找的时间复杂度均为O(1)。Redis中提供了多个操作集合的命令,以下是一些常用的操作:
1. sadd key member1 member2 ...:向集合添加元素,如果元素已经存在,则不进行任何操作。
2. scard key:获取集合中元素的数量。
3. sismember key member:判断元素是否在集合中。
4. smembers key:返回集合中所有的元素。
5. srem key member1 member2 ...:从集合中移除一个或多个元素。
6. spop key:随机弹出集合中的一个元素。
7. srandmember key [count]:随机返回集合中的一个元素,当count参数存在时,返回count个元素。
8. sdiff key1 key2 ...:返回key1、key2等多个集合之间的差集。
9. sinter key1 key2 ...:返回key1、key2等多个集合之间的交集。
10. sunion key1 key2 ...:返回key1、key2等多个集合之间的并集。
示例:
```
# 添加元素
> sadd myset "hello"
(integer) 1
> sadd myset "world"
(integer) 1
> sadd myset "world" # 元素已存在,不进行任何操作
(integer) 0
# 获取集合中元素的数量
> scard myset
(integer) 2
# 判断元素是否在集合中
> sismember myset "hello"
(integer) 1
> sismember myset "foo"
(integer) 0
# 返回集合中所有的元素
> smembers myset
1) "world"
2) "hello"
# 从集合中移除一个或多个元素
> srem myset "hello"
(integer) 1
> smembers myset
1) "world"
# 随机弹出集合中的一个元素
> spop myset
"world"
# 随机返回集合中的一个元素
> srandmember myset
"hello"
# 返回集合之间的差集
> sadd myset2 "world"
(integer) 1
> sdiff myset myset2
1) "hello"
# 返回集合之间的交集
> sinter myset myset2
1) "world"
# 返回集合之间的并集
> sunion myset myset2
1) "world"
2) "hello"
```
阅读全文