Redis 集合

介绍

Redis 集合有两类一类是有序集合(Set),另外一类是无序集合(sorted set)。

Set

Redis 的 Set 是 String 类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。

sorted set

Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。

Set集合常用命令

SADD key member [member …]

将一个或多个 member 元素加入到集合 key 当中,已经存在于集合的 member 元素将被忽略。

127.0.0.1:6379> SADD k1 v1 v2 v3 v4
(integer) 4
127.0.0.1:6379> SADD k1 v1
(integer) 0
SCARD key

返回集合 key 的基数(集合中元素的数量)。

127.0.0.1:6379> SCARD k1
(integer) 4
SDIFF key1 [key2…]

返回一个集合的全部成员,该集合是所有给定集合之间的差集(即结果集是除去key1与后面集合相同元素后的集合)。这里k1集合为v1、v2、v3、v4。

127.0.0.1:6379> SADD k2 v1 v5 v6
(integer) 3
127.0.0.1:6379> SDIFF k1 k2
1) "v4"
2) "v2"
3) "v3"
127.0.0.1:6379> SDIFF k2 k1
1) "v5"
2) "v6"
SDIFFSTORE destination key [key …]

这个命令的作用和 SDIFF 类似,但它将结果保存到 destination 集合,而不是简单地返回结果集。
如果 destination 集合已经存在,则将其覆盖。
destination 可以是 key 本身。

127.0.0.1:6379> SDIFFSTORE newkey k1 k2
(integer) 3
127.0.0.1:6379> SMEMBERS newkey
1) "v4"
2) "v3"
3) "v2"
127.0.0.1:6379>
SINTER key1 [key2…]

返回一个集合的全部成员,该集合是所有给定集合的交集(即两个集合相同的元素组成的集合)。

127.0.0.1:6379> sinter k1 k2
1) "v1"
127.0.0.1:6379> SMEMBERS k1
1) "v4"
2) "v1"
3) "v2"
4) "v3"
127.0.0.1:6379> SMEMBERS k2
1) "v5"
2) "v6"
3) "v1"
127.0.0.1:6379> SINTER k1 k2
1) "v1"
SINTERSTORE destination key [key …]

这个命令类似于 SINTER 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。
如果 destination 集合已经存在,则将其覆盖。
destination 可以是 key 本身。

SISMEMBER key member

判断member是否存在集合key的成员。如果是返回1,不是或key不存在返回0。

127.0.0.1:6379> SISMEMBER k1 v1
(integer) 1
127.0.0.1:6379> SISMEMBER k1 v0
(integer) 0
SMEMBERS key

返回集合key中的所有成员。

127.0.0.1:6379> SMEMBERS k1
1) "v4"
2) "v3"
3) "v2"
4) "v1"

SMOVE source destination member

将 member 元素从 source 集合移动到 destination 集合。
SMOVE 是原子性操作。
如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。
当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。

127.0.0.1:6379> SMEMBERs k1
1) "v4"
2) "v3"
3) "v2"
4) "v1"
127.0.0.1:6379> SMEMBERs aim_k1
(empty list or set)
127.0.0.1:6379> SMOVE k1 aim_k1 v1
(integer) 1
127.0.0.1:6379> SMOVE k1 aim_k1 v9
(integer) 0

SPOP key

移除并返回集合中的一个随机元素。

127.0.0.1:6379> SMEMBERS k1
1) "v4"
2) "v3"
3) "v2"
127.0.0.1:6379> SPOP k1
"v4"
127.0.0.1:6379> SMEMBERS k1
1) "v3"
2) "v2"
SREM key member [member …]

移除集合 key 中的一个或多个 member 元素,不存在的 member 元素会被忽略。返回成功移除元素的数量。

SUNION key1 [key2…]

返回一个集合的全部成员,该集合是所有给定集合的并集(多个集合的所有元素,不包括重复的元素)。

127.0.0.1:6379> SMEMBERS k1
1) "v3"
2) "v2"
127.0.0.1:6379> SMEMBERS k2
1) "v6"
2) "v5"
3) "v1"
127.0.0.1:6379> SUNION k1 k2
1) "v5"
2) "v6"
3) "v2"
4) "v3"
5) "v1"
SUNIONSTORE destination key [key …]

这个命令类似于 SUNION 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。
如果 destination 已经存在,则将其覆盖。
destination 可以是 key 本身。

sorted set集合常用命令

参考官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值