Redis 集合(Set)

11 篇文章 1 订阅
Redis 集合(Set)
Redis 的Set是String的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。
Reids中的集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

sadd key member1 [member2]

描述:将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略。假如集合的key不存在,则创建一个只包含添加元素成员的集合

返回值:被添加到集合中的新元素的数量,不包括被忽略的元素

127.0.0.1:6379> sadd myset hello world
(integer) 2
127.0.0.1:6379> sadd myset hello
(integer) 0
127.0.0.1:6379> sadd myset you
(integer) 1
127.0.0.1:6379> smembers myset
1) "world"
2) "hello"
3) "you"

scard key

描述:获取集合中元素的数量

返回值:集合的数量,当集合key不存在时,返回0

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset foo
(integer) 1
127.0.0.1:6379> sadd myset hello
(integer) 0
127.0.0.1:6379> scard myset
(integer) 2

sdiff key1 [key2]

描述:返回给定集合的差集,不存在的集合key将视为空集。差集的结果来自前面的first_key,而不是后面的other_key

返回值:包含差集成员的列表

127.0.0.1:6379> sadd key1 a
(integer) 1
127.0.0.1:6379> sadd key1 b
(integer) 1
127.0.0.1:6379> sadd key1 c
(integer) 1
127.0.0.1:6379> sadd key2 c
(integer) 1
127.0.0.1:6379> sadd key2 d
(integer) 1
127.0.0.1:6379> sadd key2 e
(integer) 1
127.0.0.1:6379> sdiff key1 key2
1) "a"
2) "b"

sinter key1 [key2]

描述:返回所有给定集合的交集。不存在的集合key设置为空集。当给定的集合中有一个空集时,结果也为空集

返回值:交集成员列表

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset foo
(integer) 1
127.0.0.1:6379> sadd myset bar
(integer) 1
127.0.0.1:6379> sadd myset1 hello
(integer) 1
127.0.0.1:6379> sadd myset1 world
(integer) 1
127.0.0.1:6379> sinter myset myset1
1) "hello"

sinterstore destination key1 [key2]

描述:将给定集合之间的交集存储在指定集合中。如果指定集合已经存在,则将其覆盖。

返回值:返回存储交集的集合元素数量

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset foo
(integer) 1
127.0.0.1:6379> sadd myset bar
(integer) 1
127.0.0.1:6379> sadd myset1 hello
(integer) 1
127.0.0.1:6379> sadd myset1 world
(integer) 1
127.0.0.1:6379> sinterstore myset2 myset myset1
(integer) 1
127.0.0.1:6379> smembers myset2
1) "hello"

sismember key member

描述:判断成员元素是否是集合的成员

返回值:如果集合元素是集合的成员,返回1.如果成员元素不是集合的成员,或key不存在,返回0

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sismember myset hello
(integer) 1
127.0.0.1:6379> sismember myset world
(integer) 0

smembers key

描述:返回集合中所有成员,不存在的key设为空集合

返回值:集合中所有成员

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset world
(integer) 1
127.0.0.1:6379> smembers myset
1) "world"
2) "hello"

**srem key member1 [member2] **

描述:用于移除集合中的一个或多个元素,不存在的成员元素会被忽略,当key不是集合类型时,返回一个错误

返回值:被成功移除元素的数量

127.0.0.1:6379> sadd myset hello
(integer) 1
127.0.0.1:6379> sadd myset foo
(integer) 1
127.0.0.1:6379> sadd myset bar
(integer) 1
127.0.0.1:6379> srem myset hello
(integer) 1
127.0.0.1:6379> srem myset bar
(integer) 1
127.0.0.1:6379> smembers myset
1) "foo"

sunion key1 [key2]

描述:返回给定集合的并集,不存在的集合key被视为空集

返回值:并集集合列表

127.0.0.1:6379> sadd key1 a
(integer) 1
127.0.0.1:6379> sadd key1 b
(integer) 1
127.0.0.1:6379> sadd key1 c
(integer) 1
127.0.0.1:6379> sadd key2 c
(integer) 1
127.0.0.1:6379> sadd key2 d
(integer) 1
127.0.0.1:6379> sadd key2 e
(integer) 1
127.0.0.1:6379> sunion key1 key2
1) "b"
2) "d"
3) "c"
4) "a"
5) "e"
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值