Redis事务
# Redis事务
# 事务介绍
- Redis的事务通过
MULTI
、EXEC
、DISCARD
、WATCH
四个命令来完成。 - Redis的单个命令都是原子性的,所以这里确保事务性的对象是命令集合。
- Redis将命令集合序列化并确保处于一事务的命令集合连续且不被打断的执行。
- Redis不支持回滚的操作。
# 语法
- MULTI:用于标记事务块的开始,Redis后续的命令逐个放入队列中,然后使用EXEC命令原子化地执行这个命令序列。
- EXEC:在一个事务中执行所有先前放入队列的命令,然后回复正常的连接状态。
- DISCARD:清除所有先前在一个事务中放入队列的命令,然后回复正常的连接状态。
- WATCH:当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的状态。
WATCH key [key ...]
MULTI
set k1 v1
set k2 v2
EXEC
1
2
3
4
2
3
4
WATCH k1
MULTI
set k1 v1
set k2 v2
EXEC // 如果这个过程中没人修改k1,则执行成功,否则执行失败
1
2
3
4
5
2
3
4
5
编辑 (opens new window)
上次更新: 2023/08/20, 21:21:52