概念
redis事务的本质是一组命令的集合。事务支持一次性执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程中,会按照顺序串行化执行队列中的命令,此时其他客户端提交的命令不会插入到事务执行命令的序列中。
总结来说:redis事务是一次性、顺序性、排他性的执行一个队列中的一系列命令。(redis事务不是原子性的)
Redis事务没有隔离级别的概念
批量操作在发送exec命令前,各命令会被放入队列缓存中,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到
在执行exec命令前,各命令会按顺序的放入队列缓存中,在执行exec命令后,各命令按顺序出栈执行。
事务案例
- 正常执行
- 放弃事务
- 事务执行中存在命令错误(类似java的编译性错误,则执行exec命令时,所有命令都不会执行)
- 在事务队列中存在语法性错误(类似java运行时异常),则执行exec命令时,命令继续执行,错误命令抛出异常。