Redis   发布时间:2022-05-11  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了15天玩转redis —— 第八篇 你不得不会的事务玩法大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

   我们都知道redis追求的是简单,快速,高效,在这种情况下也就拒绝了支持Window平台,学sqlserver的时候,我们知道事务还算是个比较复杂的东西,

所以这吊毛要是照搬到redis中去,理所当然redis就不是那么简单纯碎的东西了,但是呢,事务是我们写程序无法逃避的场景,所以redis作者折衷的写了个简

化版的事务机制,下面我来扯一下它的蛋蛋。

  具体到事务是什么,要保证什么。。。这个我想没必要说了,先不管三七二十一,看一下redis手册,领略下它的魔力。

15天玩转redis —— 第八篇  你不得不会的事务玩法

   还记得sqlserver是怎么玩的吗?一般都是这样的三个步骤,生成事务,产生命令,执行事务,对吧,而对应redis呢??multi就是生成事务,然后

输入redis命令,最后用exec执行命令,就像下面这样:

15天玩转redis —— 第八篇  你不得不会的事务玩法

可以看到,我set完命令之后,反馈信息是QUEUED,最后我再执行exec,这些命令才会真正的执行,就是这么的简单,一切执行的就是那么的顺利,

一点都不拖泥带水,牛逼的不要不要的,可能有些人说,其实事务中还有一个rollBACk操作,但好像在redis中没有看到,哈哈,牛逼哈,很遗憾是

redis中没有rollBACk操作,比如下面这样。

15天玩转redis —— 第八篇  你不得不会的事务玩法

在图中我故意用lpush命令去执行String,可想而知自然不会执行成功,但从结果中,你看到什么了呢?两个OK,一个Error,这就是违反了事务

的原子性,对吧,但是我该怎么反驳呢??? 我会说,错你妹啊。。。连个基本的命令都写错了,你搞个毛啊。。。还写个吊毛代码,rEIDs仅仅

是个数据结构服务器,多简单的一件事情,退一万步说,很明显的错误命令它会直接返回的,比如我故意把lpush写成lpush1:

15天玩转redis —— 第八篇  你不得不会的事务玩法

  不知道你看完multi后面的三条set命令之后,有没有一种心虚的感觉,怎么说呢,就是只要命令是正确的,redis保证会一并执行,誓死完成

任务,然说命令是一起执行的,但是谁可以保证我在执行命令的过程中,其他client不会修改这些值呢???如果修改了这些值,那我的exec

还有什么意义呢???没关系,这种烂大街的需求,redis怎可能袖手旁观???这里的watch就可以助你一臂之力。

监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。

大佬总结

以上是大佬教程为你收集整理的15天玩转redis —— 第八篇 你不得不会的事务玩法全部内容,希望文章能够帮你解决15天玩转redis —— 第八篇 你不得不会的事务玩法所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。