Redis 底层揭秘:事务与 Lua 脚本的工作原理
一、Redis 事务的工作原理
(一)事务的定义与基本操作
- 定义
- Redis 事务是一组命令的集合,这些命令可以被一次性地发送给 Redis 服务器,并且在事务执行期间,服务器会保证这些命令要么全部执行成功,要么全部不执行。
- 基本操作
MULTI
:开启一个事务,将后续的命令放入事务队列中。EXEC
:执行事务,将事务队列中的所有命令依次发送给 Redis 服务器执行。DISCARD
:放弃事务,清空事务队列中的所有命令。
(二)事务的执行过程
- 命令入队
- 当客户端执行
MULTI
命令后,Redis 会将后续的命令放入一个事务队列中,而不是立即执行这些命令。 - 例如,执行
MULTI
命令后,再执行SET key1 value1
和SET key2 value2
命令,这两个命令会被放入事务队列中等待执行。
- 当客户端执行
- 事务执行
- 当客户端执行
EXEC</
- 当客户端执行