Akemi

Redis事务

2024/09/19

事务

在数据库层面,事务是指一组操作,这些操作要么全都被成功执行,要么全都不执行。

数据库事务的四大特性

  • A:Atomic,原子性,将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行;(如果失败就会回滚)
  • C:Consistent,一致性,事务完成后,所有数据的状态都是一致的,即A账户只要减去了100,B账户则必定加上了100;
  • I:Isolation,隔离性,如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离;
  • D:Duration,持久性,即事务完成后,对数据库数据的修改被持久化存储。

Redis事务的特性

1.单独隔离操作
事务中的所有命令都会序列化,按照顺序执行,执行过程中不会被其他请求打断

2.没有隔离级别
队列中的命令没有提交之前都不会实际被执行

3.不保证原子性
redis同一个事务中如果有一条命令执行失败,其后的命令依然会被执行

Redis事务的执行流程

开启:以MULTI开始一个事务;

入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面;

执行:由EXEC命令触发事务;

Redis事务的操作

1
2
3
4
5
6
7
Multi、Exec、discard
输入multi开始,输入的命令都会依次压入命令缓冲队列,
输入Exec后,Redis会将之前的命令缓冲队列中的命令依次执行。
输入discard来放弃组队

如果语法错误,均连坐,全部失败
如果运行错误,即操作上的错误,那么正确命令都会执行,错误命令返回错误
CATALOG
  1. 1. 事务
    1. 1.1. 数据库事务的四大特性
  2. 2. Redis事务的特性
  3. 3. Redis事务的执行流程
  4. 4. Redis事务的操作