目录
一、什么是事务
Redis 的事务和 MySQL 的事务概念上是类似的,都是把一系列操作绑定成一组,让这一组能够批量执
行。
但是注意体会 Redis 的事务和 MySQL 事务的区别:
• 弱化的原子性:redis 没有 "回滚机制",只能做到这些操作 "批量执行",不能做到 "一个失败就恢复
到初始状态";
• 不保证一致性:不涉及 "约束",也没有回滚,MySQL 的一致性体现的是运行事务前和运行后,结果
都是合理有效的,不会出现中间非法状态;
• 不需要隔离性:也没有隔离级别,因为不会并发执行事务 (redis 单线程处理请求);
• 不需要持久性:是保存在内存的,是否开启持久化,是 redis-server 自己的事情,和事务无关;
Redis 事务本质上是在服务器上搞了一个 "事务队列",每次客户端在事务中进行一个操作,都会把命
令先发给服务器,放到 "事务队列" 中(但是并不会立即执行)而是会在真正收到 EXEC 命令之后,才
真正执行队列中的所有操作;
因此,Redis 的事务的功能相比于 MySQL 来说,是弱化很多的,只能保证事务中的这几个操作是 "连续的",不会被别的客户端 "加塞",仅此而已
二、事务操作
2.1 MULTI
开启一个事务,执行成功返回 OK