永发信息网

Java中不用事务,如何保证数据一致性?

答案:2  悬赏:60  手机版
解决时间 2021-02-10 20:40
Java中不用事务,如何保证数据一致性?
最佳答案
很难很麻烦,也不是不可以
如果只是对于单表不可重复数据来说,可以设置数据库表的唯一属性来保证
对于多表操作或多数据源操作,只能在业务逻辑中自定义一个写入数据库操作的开关,当业务逻辑都处理完时,在最短时间内将数据同步到数据库。并且在同步完成后,再次查询结果进行数据一致性和正确性验证操作
全部回答
以mysql来说,可能出现脏读、不可重复读以及幻读,mysql默认设置是可重复读,即一次事务中不会读取到不同的数据。 可以做如下操作: 1)打开两个客户端,均设置为rr; 2)在一个事务中,查询某个操作查到某份数据;比如是某个字段version=1存在数据; 3)在另一个事务中,删除这份version=1的数据;删除后,在2所属的事务中查询数据是没有变化的,还是存在version=1的数据; 4)当我们在2所属的事务中继续更新数据,那么会发现更新不了,明明我们就看到了这份version=1的数据; 缓存一致性: 缓存一致,与什么一致?是与数据库一致,对外查询每个时刻一致;所以在针对于缓存与数据库之间该先更新哪一个呢?可能有人觉得我先更新数据库,再更新缓存不就行了吗?但是有想过个问题吗? 当用户已经支付成功了,更新到数据库,但是呢?你还在缓存中显示未支付,在用户点击频率很高并且数据库压力过大,来不及同步到缓存时,那你是不是很尴尬,这就是典型的不一致了。此时用户再支付,那你又告诉他已经支付了,那他会把你骂死的 那该怎么来做呢?我们可以这样,先更新缓存再更新数据库,那么存在什么问题呢? 1)缓存更新成功,但是数据库更新失败,而被其它的并发线程访问到 2)缓存淘汰成功,但是数据库更新失败,这也会引发后期数据不一致
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
平利切面店地址在什么地方,想过去办事
船在静水中的速度为20KM/h水流为5KM/h求从A到
我在网上写了一本书,如何获得版权
2014年6,7月的时政新闻都有什么.每月五条.时
三郎果蔬连锁超市怎么去啊,有知道地址的么
倒着看是i need you i love you的图片
皇埔驾校同兴分校在哪里啊,我有事要去这个地
(14分)下面是某历史兴趣小组就“明清帝国的
中国南通启东海事处怎么去啊,有知道地址的么
车辆出险后定损和维修费用不一致怎么办
99年100元人民币头发右边有个2亳米长5毫米的
创举广告有限公司地址在哪,我要去那里办事
欧诗漫是纯植物萃取吗 欧诗漫补水保湿好还是
【希冀是什么意思】希冀是什么意思?
求太原到广东中山坐车路线及价格,急!!!
推荐资讯
中医和西医怎样区别?
独立悬挂有什么好处?
固定资产多提了折旧,会计上如何处理?
医学伦理学的公正原则不包括的是A.公平正直地
48伏80安的电瓶用逆变器带复印件可以吗
诚悦汽贸(黄金岭街道办事处迎滨大道华坚国际
warframe扶她带什么武器好
现在讲解一下死神漫画更新到哪了~谢谢
需要生么样的等级才能在小米论坛回复和发帖?
遍地是村庄.(打一《水浒》人名) 异己。(打一
怎样找出firefox收藏夹的位置?
燕青摄影地址在哪,我要去那里办事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?