乐观锁复杂事务控制
2015-07-17 17:17
363 查看
大多是基于数据版本(version)的记录机制实现的,即为数据增加一个版本标识,在基于数据库表的版本解决方案中
一般是通过数据库表增加一个version字段来实现读取数据的,将此版本号一同读出,之后更新时对此版本号加1此时
将提交的数据的版本号与数据库表对应记录的当前版本号进行对比,如果提交的数据版本号大于数据库当前的版本号
。则予以更新,否则认为是过期数据。
watch命令会监视给定的key,当exec时候如果监视的key从调用watch后发生过变化
则整个事务会失败,也可以调用watch多次监视多个key这样就可以对指定的key加乐观锁了
注意watch的key是对整个连接有效的。事务也一样。如果连接断开,监视的事务都会被自动清除,当然了
exec,discard,unwatch命令都会清除连接中的所有监视。
一般是通过数据库表增加一个version字段来实现读取数据的,将此版本号一同读出,之后更新时对此版本号加1此时
将提交的数据的版本号与数据库表对应记录的当前版本号进行对比,如果提交的数据版本号大于数据库当前的版本号
。则予以更新,否则认为是过期数据。
watch命令会监视给定的key,当exec时候如果监视的key从调用watch后发生过变化
则整个事务会失败,也可以调用watch多次监视多个key这样就可以对指定的key加乐观锁了
注意watch的key是对整个连接有效的。事务也一样。如果连接断开,监视的事务都会被自动清除,当然了
exec,discard,unwatch命令都会清除连接中的所有监视。
相关文章推荐
- hybris软件公司产品业务介绍及信息分享
- 003.Kafka基本概念
- jquery 设置控件的disabled属性
- NSString 遍历字符串的每一个字符并替换相关的字符
- codevs1008
- OTSU算法(也称最大类间差法,有时也称之为大津算法)
- qt widget设置Qt::FramelessWindowHint和Qt::WA_TranslucentBackground, 会出现一个bug: 在最小化后还原时界面停止刷新
- log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment)
- html与jsp页面的转换+引入外部jsp(html)文件
- const的用法
- TextView实现跑马灯效果,不用获取焦点
- 物理数据库设计 - 限定列的有效值
- 二分Kmeans的java实现
- [Tools]build crash ARM64 on ubuntu-1204-64-bit for crashdump analyze
- ACM空瓶换饮料问题
- 字符串面试题:将整型转换为字符串
- 物理数据库设计 - 限定列的有效值
- 三级联动
- myEclipse2014 连接 sqlServer2012 总结
- 随笔