Redis SMOVE命令

将元素membersource集合移到destination集合。 此操作是原子的。 在每个给定的时刻,该元素都只出现在source集合或destination集合中,不管是当前客户端还是其它客户端都是如此。

如果source集合不存在或不包含指定的元素,则不执行任何操作,并返回0。 否则,该元素将从source集合中删除,并添加到destination集合中。 如果指定的元素已存在于destination集合中,则仅将其从source集合中删除。

如果sourcedestination的值不是集合,则返回错误。

可用版本:从1.0.0开始可用
时间复杂度:O(1)。

命令格式

SMOVE source destination member

示例

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) "three"
2) "two"

返回值

  • 1,如果元素已移动。
  • 0,如果元素不是source集合的成员并且未执行任何操作。