博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
09-redis事务及锁应用
阅读量:7042 次
发布时间:2019-06-28

本文共 1427 字,大约阅读时间需要 4 分钟。

Redis 中的事务Redis支持简单的事务Redis与 mysql事务的对比-------------------------------------------------------	       Mysql	                Redis-------------------------------------------------------开启	   start transaction	        muitl-------------------------------------------------------语句	      普通sql	                普通命令-------------------------------------------------------失败	    rollback 回滚	       discard 取消-------------------------------------------------------成功         commit	                 exec-------------------------------------------------------注: rollback与discard 的区别如果已经成功执行了2条语句, 第3条语句出错.Rollback后,前2条的语句影响消失.Discard只是结束本次事务,前2条语句造成的影响仍然还在注:在mutil后面的语句中, 语句出错可能有2种情况1: 语法就有问题, 这种,exec时,报错, 所有语句得不到执行2: 语法本身没错,但适用对象有问题. 比如 zadd 操作list对象Exec之后,会执行正确的语句,并跳过有不适当的语句.(如果zadd操作list这种事怎么避免? 这一点,由程序员负责)思考: 我正在买票Ticket -1 , money -100而票只有1张, 如果在我multi之后,和exec之前, 票被别人买了---即ticket变成0了.我该如何观察这种情景,并不再提交悲观的想法: 世界充满危险,肯定有人和我抢, 给 ticket上锁, 只有我能操作. [悲观锁]乐观的想法:没有那么人和我抢,因此,我只需要注意,--有没有人更改ticket的值就可以了 [乐观锁]Redis的事务中,启用的是乐观锁,只负责监测key没有被改动.具体的命令----  watch命令例: redis 127.0.0.1:6379> watch ticketOKredis 127.0.0.1:6379> multiOKredis 127.0.0.1:6379> decr ticketQUEUEDredis 127.0.0.1:6379> decrby money 100QUEUEDredis 127.0.0.1:6379> exec(nil)   // 返回nil,说明监视的ticket已经改变了,事务就取消了.redis 127.0.0.1:6379> get ticket"0"redis 127.0.0.1:6379> get money"200"watch key1 key2  ... keyN作用:监听key1 key2..keyN有没有变化,如果有变, 则事务取消unwatch 作用: 取消所有watch监听

  

转载地址:http://edxal.baihongyu.com/

你可能感兴趣的文章
NEC面部识别系统助力台北世界大学生运动会
查看>>
nfs
查看>>
UltraEdit实现“删除包含某个关键字的所有行”
查看>>
WSFC 维护模式操作粒度控制
查看>>
linux kill 命令
查看>>
为什么使用useLegacyV2RuntimeActivationPolicy?
查看>>
Shell工作笔记01
查看>>
windows 2008 R2搭建简单WEB服务器
查看>>
hyper-v故障转移群集之4、创建群集
查看>>
webpack命令行
查看>>
多网卡的7种bond模式原理
查看>>
用update和replace在sql中替换某一个字段的部分内容
查看>>
Web框架原理
查看>>
HEX解码
查看>>
.pyc是什么鬼?
查看>>
golang 详解defer
查看>>
流程控制-for序列、流程控制-for字典
查看>>
Go语言之反射
查看>>
dTree JS 基本用法
查看>>
Android Things创客DIY第一课-用Android Things展示你的智能设备创意-基础篇
查看>>