Redis教程11-集合(Set)常用命令使用参考2
1.SINTERSTORE
SINTERSTORE destination key [key ...]
这个命令类似于 SINTER 命令,但它将结果保存到 destination 集合,而不是简单地返回结果集。
如果 destination 集合已经存在,则将其覆盖。
destination 可以是 key 本身。
可用版本:>= 1.0.0
时间复杂度:O(N * M), N 为给定集合当中基数最小的集合, M 为给定集合的个数。
返回值:结果集中的成员数量。
使用参考命令 SDIFFSTORE命令, 只不过一个差值一个交集, 使用方式是一样的
2.SISMEMBER
SISMEMBER key member
判断 member 元素是否集合 key 的成员。
可用版本:>= 1.0.0
时间复杂度:O(1)
返回值:
127.0.0.1:6379> smembers name1 1) "jerry" 2) "zhangsan" 3) "tom" 127.0.0.1:6379> sismember name1 tom (integer) 1 127.0.0.1:6379> sismember name1 lisi (integer) 0 127.0.0.1:6379> sismember name111 lisi // key不存在 (integer) 0
3.SMEMBERS
SMEMBERS key
返回集合 key 中的所有成员。
不存在的 key 被视为空集合。
可用版本:>= 1.0.0
时间复杂度:O(N), N 为集合的基数。
返回值:集合中的所有成员。
127.0.0.1:6379> exists names (integer) 0 127.0.0.1:6379> smembers names // 不存在的key (empty list or set) 127.0.0.1:6379> sadd names tom jerry zhangsan lisi (integer) 4 127.0.0.1:6379> smembers names 1) "lisi" 2) "jerry" 3) "zhangsan" 4) "tom"
4.SMOVE
SMOVE source destination member
将 member 元素从 source 集合移动到 destination 集合。
SMOVE 是原子性操作。
如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回 0 。否则, member 元素从 source 集合中被移除,并添加到 destination 集合中去。
当 destination 集合已经包含 member 元素时, SMOVE 命令只是简单地将 source 集合中的 member 元素删除。
当 source 或 destination 不是集合类型时,返回一个错误。
可用版本:>= 1.0.0
时间复杂度:O(1)
返回值:
redis> SMEMBERS songs 1) "Billie Jean" 2) "Believe Me" redis> SMEMBERS my_songs (empty list or set) redis> SMOVE songs my_songs "Believe Me" (integer) 1 redis> SMEMBERS songs 1) "Billie Jean" redis> SMEMBERS my_songs 1) "Believe Me"
5.SPOP
SPOP key [count]
移除并返回集合中的一个(或者count个)随机元素。
如果只想获取一个随机元素,但不想该元素从集合中被移除的话,可以使用 SRANDMEMBER 命令
count > 集合剩余个数, 此时count=元素个数
可用版本:>= 1.0.0
时间复杂度:O(1)
返回值:
127.0.0.1:6379> smembers name1 1) "zhangsan" 2) "tom" 3) "jack" 4) "jerry" 5) "lisi" 127.0.0.1:6379> spop name1 2 // 随机返回并删除2个元素 1) "tom" 2) "zhangsan" 127.0.0.1:6379> spop name1 2 // 随机返回并删除2个元素 1) "lisi" 2) "jerry" 127.0.0.1:6379> smembers name1 1) "jack"
127.0.0.1:6379> spop name1 2 // 元素只剩1个, 不能随机删除2个, 删除剩余的所有元素
1) "jack"
127.0.0.1:6379> spop name1 2 // 没有元素, 无法随机删除
(empty list or set
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)