Redis事务
- 一次可以执行多个命令
- 批量操作在发送 EXEC 命令前被放入队列缓存
- 收到 EXEC 命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行(语法错误会停止事务)
- 事务执行过程中,不会有其他操作插入到事务的执行命令序列中
- 单个redis命令的执行时原子性的,但是事务上没有维持原子性
- 可以理解为打包执行,省去网络耗时,中间某条指令失败不会导致之前操作回滚,不会导致后续操作暂停
- redis通过watch来监测数据,在执行exec前,监测的数据被其他人更改会抛出错误,取消执行
MySQL事务
- 原子性
- 隔离性:读提交,读未提交,可重复读,串行,mysql默认事务隔离级别可重复读
- 一致性
- 持久性