Redis事务的概念
Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。
- 简单来说就是:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令
特点
- 没有隔离级别的概念
批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到 - 不保证原子性
相关命令
事务的流程
- 开始事务
- 命令入队
- 执行事务
案例
正常执行
放弃事务
命令性错误(相当于编译错误)
语法性错误(相当于运行时错误)
使用watch
watch指令类似与乐观锁,在事务提交时,如果watch监控的balance值被其他客户端更改,事务将不会执行