事务
在数据库层面,事务是指一组操作,这些操作要么全都被成功执行,要么全都不执行。
数据库事务的四大特性
- A:Atomic,原子性,将所有SQL作为原子工作单元执行,要么全部执行,要么全部不执行;(如果失败就会回滚)
- C:Consistent,一致性,事务完成后,所有数据的状态都是一致的,即A账户只要减去了100,B账户则必定加上了100;
- I:Isolation,隔离性,如果有多个事务并发执行,每个事务作出的修改必须与其他事务隔离;
- D:Duration,持久性,即事务完成后,对数据库数据的修改被持久化存储。
Redis事务的特性
1.单独隔离操作
事务中的所有命令都会序列化,按照顺序执行,执行过程中不会被其他请求打断
2.没有隔离级别
队列中的命令没有提交之前都不会实际被执行
3.不保证原子性
redis同一个事务中如果有一条命令执行失败,其后的命令依然会被执行
Redis事务的执行流程
开启:以MULTI
开始一个事务;
入队:将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面;
执行:由EXEC
命令触发事务;
Redis事务的操作
1 | Multi、Exec、discard |