对比MySQL事务:【MySQL篇】事务的认识以及四大特性-CSDN博客
Redis的事务没有像MySQL那么全,它主要的意义将操作“打包”成一个整体,避免其他客户端的命令,插队到中间~
Redis实现事务,是在里面引入了一个队列(每个客户端都有)
当开启事务的时候,客户端输入命令,就会发送到服务器并且命令进入队列中,并不是立即执行,而是遇到执行事务的命令时候,这时会把队列里面的命令按照顺序依次执行~
因此, Redis 的事务的功能相比于 MySQL 来说, 是弱化很多的. 只能保证事务中的这几个操作是 "连续的", 不会被别的客户端 "加塞", 仅此而已.
此时队列中保存了上述请求,但如果其他客户端想查看里面的内容是查找不到的
放弃当前事务. 此时直接清空事务队列. 之前的操作都不会真正执行到.
在执行事务的时候, 如果某个事务中修改的值, 被别的客户端修改了, 此时就容易出现数据不⼀致的问题.
例如以下场景
但如果使用了watch命令
UNWATCH:取消对key监控,是watch的逆操作