关于redis事务机制打断
老师您好,在这节课神思者老师提出redis的事务机制在运行的时候是不能打断的,我有些不太理解:
在开启事务后采用watch监测数据,如果监测的数据被其他客户端的操作改变了,该事物不就被打断终止了,这样的逻辑不是可以理解为redis事务机制是可以被打断的么?
11
收起
正在回答
1回答
同学,你好!同学说的打断和老师说的事务机制打断不是一个内容,老师说的redis 事务相当于批处理。意思是开启事务后47、48、49行代码先保存下来,等到执行pipeline.execute()时,再将47、48、49代码发送到redis执行。
这样能达到要47、48、49行代码一起执行,中间不能被其它客户端打断。不能是其它客户端A执行了pipeline.incr("kill_num")代码后,再返回到我们这个客户端再执行pipeline.rpush("kill_user",user_id)这个代码。意思是一个客户端开始事务后要么multi()到pipeline.execute()之间的代码都执行,要不就都不执行
而同学理解的redis 事务机制打断应该是客户端A与客户端B完整的事务之间的打断。客户端A在修改数据,则客户端B不会同时执行事务,修改数据。可以理解为客户端与客户端整体事务是可以打断的。看同学怎么理解。
祝学习愉快~
Python全能工程师
- 参与学习 人
- 提交作业 16233 份
- 解答问题 4470 个
全新版本覆盖5大热门就业方向:Web全栈、爬虫、数据分析、软件测试、人工智能,零基础进击Python全能型工程师,从大厂挑人到我挑大厂,诱人薪资在前方!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星