IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis中的数据冲突问题 -> 正文阅读

[大数据]Redis中的数据冲突问题

redis中的watch机制

????????WATCH 机制:使用 WATCH 监视一个或多个 key , 跟踪 key value 修改情况,如果有key 的 value 值在事务 EXEC 执行之前被修改了,整个事务被取消。 EXEC 返回提示信息,表示
事务已经失败。
????????个人感觉watch机制与java中的对象锁机制十分相似,但是watch采用的是 乐观锁 机制,乐观锁:总是乐观地假设最好的情况,每次去拿数据的时候都认为别人不会修改这个数据,所以不会上锁,只会要对数据进行更新时判断一下在此期间(拿到数据到更新的期间)别人有没有去更改这个数据,如果监视的数据没有被更改,则事务执行,反之事务不执行。
? ? ? ? 例如:开启以下两个窗口分别对同一个redis的数据进行操作,左边的窗口表示对key值进行watch监视操作,并且执行multi事务,右边的窗口表示在exec执行之前对key值进行修改。
左1窗口(对key值进行watch监视操作,并且执行exec事务):
首先设置key=zouda的值为11,并且开启事务:exec,在事务中修改zouda值为12,先不执行事务。

右2?窗口(修改zouda的值为15)

左1窗口: 然后在左1窗口执行事务,并检查最后zouda的值。

检查结构为15,也就是说zouda的值没有被事务修改为12,事务没有执行成功,回滚了。

最后总结:watch监视的key值之后,redis事务执行成功的条件也就严格了,也就是说事务开启后,如果被watch的key值被修改了,则事务是无法成功执行的。

所以说这个zouda是十分有个性的。

?

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-08-19 19:12:48  更:2022-08-19 19:14:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 19:04:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码