redis对事务的支持目前还比较简单。redis只能保证一个client发起的事物中的名利可以连续的执行,而中间不会插入其他client的命令。档一个client在一个连接中发出multi命令时,这个连接会进入一个事务上下文,该连接后续的名利不会立即执行,而是先放到一个队列中,当执行exec命令时,redis会顺序的执行队列中的所有命令。
例如:
multi 开始事务
set age 10
set age 20
exec 执行
例如:
multi 开始事务
set age 10
set age 20
discard 回滚
但是这个队列中的某个命令出现错误,整个事务不会回滚。
使用watch 名称 reids可以实现乐观锁。
例如:
multi 开始事务
set age 10
set age 20
exec 执行
例如:
multi 开始事务
set age 10
set age 20
discard 回滚
但是这个队列中的某个命令出现错误,整个事务不会回滚。
使用watch 名称 reids可以实现乐观锁。