redis的transaction事务的了解
redis命令手册
WATCH
WATCH key [key ...]
返回值:
总是返回 OK 。
监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,
那么事务将被打断。
示例代码:
redis> WATCH lock lock_times
OK
UNWATCH
返回值:
总是 OK 。
取消 WATCH 命令对所有 key 的监视。
示例代码:
redis> WATCH lock lock_times
OK
redis> UNWATCH
OK
MULTI
返回值:
总是返回 OK 。
标记一个事务块的开始。
示例代码:
redis> MULTI # 标记事务开始
OK
redis> INCR user_id # 多条命令按顺序入队
QUEUED
redis> INCR user_id
QUEUED
redis> INCR user_id
QUEUED
DISCARD
返回值:
总是返回 OK 。
取消事务,放弃执行事务块内的所有命令。
示例代码:
redis> MULTI
OK
redis> PING
QUEUED
redis> SET greeting "hello"
QUEUED
redis> DISCARD
OK
EXEC
返回值:
事务块内所有命令的返回值,按命令执行的先后顺序排列。
当操作被打断时,返回空值 nil。
执行所有事务块内的命令。
示例代码:
# 事务被成功执行
redis> MULTI
OK
redis> INCR user_id
QUEUED
redis> INCR user_id
QUEUED
redis> INCR user_id
QUEUED
redis> PING
QUEUED
redis> EXEC
1) (integer) 1
2) (integer) 2
3) (integer) 3
4) PONG
# 监视 key ,且事务成功执行
redis> WATCH lock lock_times
OK
redis> MULTI
OK