19 事务
通过MULTI(开始事务)、EXEC(事务提交)、WATCH等命令来实现事务功能,可以将多个命令请求打包,一次性、按顺序执行,且不断被中断
例子:
19.1 事务的实现
一个事务从开始到结束会经历三个阶段:
1.事务开始
2.命令入队
3.事务执行
19.1.1 第一阶段:事务开始
MULTI命令标志着事务的开始,将客户端从非事务状态切换为事务状态,通过在客户端状态(redisClient)的flags属性中打开REDIS_MULTI标识来完成的
19.1.2 第二阶段:命令入队
客户端处于事务状态时,命令不会被服务器立即执行,会根据发送的不同命令执行不同的操作:
19.1.3 事务队列
每个客户端都有自己的事务状态multiState,保存在redisClient的mstate属性里面: