SMOVE 命令将 member 从 source 集合移动到 destination 集合中。SMOVE 是原子性操作。
如果 source 集合不存在或不包含指定的 member 元素,则 SMOVE 命令不执行任何操作,仅返回0。否则,member 元素从 source 集合中被移除,并添加到 destination 集合中去。当 destination 集合已经包含 member 元素时,SMOVE 命令只是简单地将 source 集合中的 member 元素删除。当 source 或 destination 不是集合类型时,返回一个错误。
命令格式
SMOVE source destination member
可用版本:>=1.0.0
时间复杂度:O(1)
命令返回值
返回整数:
- 如果 member 元素被成功移除,返回1。
- 如果 member 元素不是 source 集合的成员,并且没有任何操作对 destination 集合执行,那么返回0。
示例
redis> SADD myset "one"
(integer) 1
redis> SADD myset "two"
(integer) 1
redis> SADD myotherset "three"
(integer) 1
redis> SMOVE myset myotherset "two"
(integer) 1
redis> SMEMBERS myset
1) "one"
redis> SMEMBERS myotherset
1) "two"
2) "three"