Redis 事务

用 MULTI/EXEC 打包命令,理解 Redis 事务的「弱」语义。

Beginner
Key PointsRedis 事务保证「命令按顺序一次性执行」,但不支持中途回滚。

MULTI / EXEC

Shell
MULTI
SET a 1
INCR a
GET a
EXEC          # 一次性执行队列里的命令
Output
1) OK
2) (integer) 2
3) "2"

WATCH 乐观锁

Shell
WATCH balance
# 如果 balance 在 EXEC 前被别的客户端改了,EXEC 返回 nil(事务 abort)
MULTI
DECRBY balance 10
EXEC
Redis transactions do NOT roll back — if one command errors, earlier ones stay applied. They give isolated execution, not ACID rollback. For complex logic use Lua.

Friends & Partners