首页/数据/数据库速查/SMOVE 原子移动成员
本包目录(495 条)
MySQL 基础与连接36 条SQL 语法52 条用户与权限21 条备份与恢复56 条主从复制与高可用53 条性能与调优57 条
Redis 命令96 条
Redis 运维与场景124 条

SMOVE 原子移动成员

把成员从源集合原子移到目标集合:源中存在且移动成功返回 1,源中不存在返回 0;目标已存在该成员时源仍会删除它。

数据库速查数据更新于 2026-10-12

示例

示例
SADD inbox:u1 m1 m2
SADD archive:u1 m2
SMOVE inbox:u1 archive:u1 m1    # 1:m1 移入 archive
SMEMBERS inbox:u1               # m2
SMOVE inbox:u1 archive:u1 m2    # 1:源删除 m2;archive 本来就有 m2,不重复
SMOVE inbox:u1 archive:u1 m9    # 0:m9 不在源里
返回1 移动成功 / 0 源中不存在
原子性单命令,跨键原子
目标已存在仍从源删除(去重语义)
状态机流转(待处理->处理中)用 SMOVE 很自然;若流转时要保留原集合并记录时间,考虑 ZSet 打分方案。

易错点

  • 以为目标已存在会返回 0:实际仍返回 1 且源成员被删除
  • 跨集群多键 SMOVE:不同槽位会报 CROSSSLOT,需要哈希标签

数据来源与参考

  • Redis 官方文档: SMOVE

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌