Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

怎么理解Redis事务? #7

Open
yangyichao-mango opened this issue Jan 6, 2020 · 1 comment
Open

怎么理解Redis事务? #7

yangyichao-mango opened this issue Jan 6, 2020 · 1 comment

Comments

@yangyichao-mango
Copy link

Redis面试题及答案.md
26、怎么理解Redis事务?

事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。

事务是一个原子操作:事务中的命令要么全部被执行,要么全部都不执行。

其中对于事务的解释是对的,但是redis的事务不是真的事务,比如有a,b,c三条命令在一个事务里,a执行成功,b执行失败,也不会回滚a的操作,也不会影响c的执行

单个 Redis 命令的执行是原子性的,但 Redis 没有在事务上增加任何维持原子性的机制,所以 Redis 事务的执行并不是原子性的。
https://www.runoob.com/redis/redis-transactions.html

@AkonCoder
Copy link

redis的事务分两个本部分,一个是命令组队的阶段,一个是执行的阶段,在组队阶段命令错误,那么所有的命令就不会执行,如果multi阶段(命令组队阶段)都正确,在执行阶段有执行有错误,那么执行错误命令之前的是无法回滚的,错误之后的不会继续执行。所以单纯的说Redis事务是原子性的不太对。
image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants