Multi命令
Redis中Multi和Pipeline命令都能一次执行多条命令。Pipeline并没有保证这些指令执行的顺序,Multi能保证整个操作的有序性。
Multi命令作用
- MULTI,EXEC,DISCARD 和 WATCH 是 Redis 事务相关的命令。
- Multi 命令用于标记一个事务块的开始。
- 事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。
Redis中事务
Redis对事务部分支持,只是全部执行,不是全部成功/失败。
- 如果最开始语法等就有提交错误,全部不执行。
- 如果在执行过程中报错,报错命令不执行,其他命令正常执行。
示例
redis 127.0.0.1:6379> MULTI # 标记事务开始
OK
redis 127.0.0.1:6379> INCR user_id # 多条命令按顺序入队
QUEUED
redis 127.0.0.1:6379> INCR user_id
QUEUED
redis 127.0.0.1:6379> INCR user_id
QUEUED
redis 127.0.0.1:6379> PING
QUEUED
redis 127.0.0.1:6379> EXEC # 执行
1) (integer) 1
2) (integer) 2
3) (integer) 3
4) PONG
参考:
https://www.runoob.com/redis/transactions-multi.html