文章目录
- 前言
- 个人学习记录,仅供参考
- 一、redis事务是什么?
- 二、sql事务是什么?
- 三、二者区别
- 总结
一、redis事务是什么?
Redis 可以通过 MULTI,EXEC,DISCARD 和 WATCH 等命令来实现事务(transaction)功能。
- 使用 MULTI 命令后可以输入多个命令。Redis 不会立即执行这些命令,而是将它们放到队列(FIFO)。
- 过程:开始事务(MULTI): 命令入队(批量操作 Redis 的命令,先进先出(FIFO)的顺序执行)。 2.执行事务(EXEC): 通过 DISCARD 命令可以取消一个事务,它会清空事务队列中保存的所有命令。3. WATCH 命令用于监听指定的键,当调用 EXEC 命令执行事务时,如果一个被 WATCH 命令监视的键被修改的话,整个事务都不会执行,直接返回失败。
二、sql事务是什么?
事务 (Transaction) 事务是一个由一系列操作组成的逻辑单位,这些操作要么全部成功,要么全部失败。
事务具有以下四个特性: 原子性 (Atomicity):事务中的所有操作要么全部完成,要么全部不做。 一致性 (Consistency):事务开始前和结束后,数据库的一致性必须保持。 隔离性 (Isolation):多个事务并发执行时,互不干扰。 持久性 (Durability):一旦事务提交,其结果是永久性的,即使系统崩溃也不会丢失。 在 MySQL 中,可以使用 START TRANSACTION、COMMIT 和 ROLLBACK 来控制事务。
三、二者区别
Redis 是不支持 回滚(roll back) 的,所以不满足sql事务中的原子性的(而且不满足持久性)。Redis 中的事务可以理解成 :Redis 事务提供了一种将多个命令请求打包的功能,然后,再按顺序执行打包的所有命令,并且不会被中途打断。