Redis事务中的watch机制-从实例入手学习
场景
Redis中事务的实现流程:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/105048241
在上面学会Redis的事务的使用流程后,Redis还有一个watch机制。
Watch机制原理
使用watch监视一个或者多个key,跟踪key的value修改情况,如果有key的value值在
事务exec执行之前被修改了,整个事务被取消。exec返回提示信息,表示事务已经失败。
但是如果使用watch监视了一个带过期时间的键,那么即使这个键过期了,事务仍然可以正常执行。
大多数情况下,不同的客户端会访问不同的键,相互同时竞争同一key的情况一般都很少,乐观锁能够
以很好的性能解决数据冲突的问题。
何时取消key的监视
1.watch命令可以被调用多次。对键的监视从watch执行之后开始生效,直到调用exec为止,不管事务是否成功执行,
对所有键的监视都会被取消。
2.当客户端断开连接时,该客户端对键的监视也会被取消。
3.unwatch命令可以手动取消对所有键的监视。
watch机制以及乐观锁举例
Centos中Redis的下载编译与安装(超详细):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334
Redis的启动和关闭(前台启动和后台启动):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103972348
RedisDesktopManager客户端可视化工具下载安装与使用:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103983147
参照以上博客搭建好环境,并启动redis服务端,然后开启两个客户端连接。
这里使用的是XShell所以复制一个会话
在第一个客户端中设置key-value并watch这个key然后开启事务,不要exec即提交事务
然后在复制出来的会话即第二个客户端中将此key修改为100
然后再回到第一个客户端中执行exec即提交事务
可以看到第一个客户端的事务并没有提交,因为watch的值已经被修改了,所以放弃事务。
Redis事务中的watch机制-从实例入手学习相关推荐
- 从实例入手学习Shiro的会话机制
场景 从实例入手学习Shiro与Web的整合: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90140802 在上面已经实现整合 ...
- 从实例入手学习Shiro自定义Realm实现查询数据进行验证
场景 从实例入手学习Shiro与Web的整合: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/90140802 在上面已经实现整合 ...
- Redis事务中几种常见的场景-exec执行前后的语法错误时的处理
场景 Centos中Redis的下载编译与安装(超详细): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334 Re ...
- 详解JS中的事件机制(带实例)
2019独角兽企业重金招聘Python工程师标准>>> 1. 事件冒泡与事件捕获 事件冒泡和事件捕获分别由微软和网景公司提出,这两个概念都是为了解决页面中事件流(事件发生顺序)的问题 ...
- ES中搜索结果各属性说明介绍,以及搜索中的timeout机制讲解(来自学习资料,34节)
1.属性说明和介绍 执行命令: GET /test_index/test_type/_search?timeout=1s 运行后的结果如下: {"took": 4,"ti ...
- Jquery中进行post请求时同步与异步的区别(从实例入手学习)
场景 表单中有两个输入框input在提交这个表单前需要对两个输入框进行校验. 即点击提交按钮时会经过校验的方法,此方法会post方式提交到后台,在请求后台成功后的回调方法中会对js变量进行赋值,进而决 ...
- 从实例入手学习Shiro与Web的整合
场景 Shiro官网关于Web整合文档: http://shiro.apache.org/web.html#Web-configuration W3Cschool Shiro Web集成: https ...
- 从实例入手学习使用vue+axios配置代理进行跨域访问百度音乐API
场景 如果要使用axios直接进行跨域访问是不可以的,这是就需要配置代理了,为什么要配置代理呢? 原因就是因为客户端请求服务端的数据是存在跨域问题的,而服务器和服务器之间可以相互请求数据,是没有跨域的 ...
- 从实例入手学习Vue-router的使用-实现音乐导航菜单切换
效果 实现 Vue Router 官方文档 https://router.vuejs.org/zh/guide/ 用 Vue.js + Vue Router 创建单页应用,是非常简单的.使用 Vue. ...
最新文章
- nginx web服务理论与实战
- 1050 String Subtraction (20 分)_10行代码AC
- python的matplotlib风格_matplotlib 的几种风格 练习
- java实现计算字符串表达式
- Could not load the btn_020.disable.png image referenced from a nib in the bundle with identifier ...
- @开发者 区块链技术如此火爆 你却只能望而却步?京东云为你配齐装备!
- 远程过程调用失败_快速失败机制amp;失败安全机制
- 【Python】:用python做下百度2014笔试题
- hello guass
- 电脑重置,win10怎么重置此电脑 重置电脑的方法和后果
- 大数据之Redis:Redis之一主二仆模式
- NUAA 南航操作系统实验 代码部分
- nginx lua读redis
- 腾讯视频会议真实内部实现分享
- 浏览器野史 UserAgent 列传(上)
- python 分类问题 画roc曲线实战
- 基于单片机的太阳能热水器辅助控制系统
- pixfllow光流传感器数据获取及悬停程序编写
- 国内NLP的那些人那些会
- Java基础 DAY18
热门文章
- 博本 微型 电脑 linux,博本电脑下载与安装Windows7iso镜像系统教程
- 「后端小伙伴来学前端了」Vue中Props 实现组件通信TodoList案例
- 这次让我们从字节码文件来重新认识String,文末有两个小小面试题,一起来试一试
- 史上最详细Docker安装Redis (含每一步的图解)实战
- 虚拟机的分类_「面试必备」Java虚拟机知识点复习手册(下)
- python联盟是什么意思_Python 与 英雄联盟(1)
- linux wireshark_WireShark使用教程
- excel模糊匹配两列文字_Excel快速画出美观饼图
- js 时间比较_成都js聚合物弹性防水涂料生产厂家来电洽谈_鹏晨防水
- centos 6.5 32bit qemu 环境搭建