博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
事务与WATCH命令
阅读量:6690 次
发布时间:2019-06-25

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

hot3.png

事务

    redis支持事务,比如三个KEY的同时修改可以在同一个事务中执行。但是redis的事务与我们接触的关系型数据库事务不一样。

    1.事务中命令包含语法错误,整个事务所有命令都不执行

    2.事务中命令没有语法错误,但执行时有命令失败,不影响事务中其他命令执行

    3.事务不支持回滚

    针对2、3两个特点,一旦发生运行时错误,需要开发者自己收拾烂摊子,在开发的时候就做好规划避免出现运行时错误。

    事务命令:

    multi

    set key1 value

    set key2 value

    set key3 value

    exec

WATCH

    使用watch命令之后,如果修改了key(包括删除),redis会阻止下一次事务的修改,这一点和zookeeper的监听很类似,都是单次设置单次使用,一旦触发必须重新设置watch

    举例:

    client1:

    145827_50Rl_3049601.png

    client2:

    145900_ZJce_3049601.png

    可以看到client1事务内的命令没有执行成功,说明watch起了作用

    所以针对这种情况,程序需要根据返回值重新调用

    注:事务中修改的key只要其中一个因为watch执行失败,不论其他是否设置了watch,则全部失败。

转载于:https://my.oschina.net/u/3049601/blog/1329888

你可能感兴趣的文章
发改委:以稳汽车消费来托住商品消费“大头”
查看>>
华夏幸福前锋拉维奇旧伤复发 已顺利完成手术
查看>>
Python入门:Python 2与Python3有什么区别?
查看>>
淘宝天猫购物再不要这样子了我刚亏了8块钱
查看>>
如何跟踪信息流广告转化数据?
查看>>
美拍直播首屏耗时减少50%以上的优化实践
查看>>
一篇文章搞懂 Activity 启动模式
查看>>
你不知道的 Electron (二):了解 Electron 打包
查看>>
Flexbox Guide
查看>>
听说你精通原生JavaScript,来试试这份题目吧
查看>>
蚂蚁金服自主研发的三地五中心异地多活解决方案获金融科技创新大奖
查看>>
junit测试之第三方组件mock
查看>>
sitemesh的script提取
查看>>
玩转iOS开发:iOS 11 新特性《UICollectionView的拖放》
查看>>
原来 JS 还存在这样的拆箱转换
查看>>
读书笔记 | 《Think in Java》Ⅶ 复用类
查看>>
基于比特币现金BCH二层网络能实现区块链2.0以太坊的智能化吗?
查看>>
Android显示框架:Android应用视图的管理者Window
查看>>
[译] JavaScript 如何工作:对引擎、运行时、调用堆栈的概述
查看>>
将 Intent 序列化,像 Uri 一样传递 Intent!!!
查看>>