4.Redis事务

94 阅读1分钟

概念

redis事务的本质是一组命令的集合。事务支持一次性执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程中,会按照顺序串行化执行队列中的命令,此时其他客户端提交的命令不会插入到事务执行命令的序列中。

总结来说:redis事务是一次性、顺序性、排他性的执行一个队列中的一系列命令。(redis事务不是原子性的)

Redis事务没有隔离级别的概念

批量操作在发送exec命令前,各命令会被放入队列缓存中,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到

Image.png

在执行exec命令前,各命令会按顺序的放入队列缓存中,在执行exec命令后,各命令按顺序出栈执行。

事务案例

  • 正常执行

Image.png

  • 放弃事务

Image.png

  • 事务执行中存在命令错误(类似java的编译性错误,则执行exec命令时,所有命令都不会执行)

Image.png

  • 在事务队列中存在语法性错误(类似java运行时异常),则执行exec命令时,命令继续执行,错误命令抛出异常。

Image.png