为了账号安全,请及时绑定邮箱和手机立即绑定

为何Redis用乐观锁,而MySQL数据库却没有

为何Redis用乐观锁,而MySQL数据库却没有

森林海 2019-03-13 09:09:58
为何Redis用乐观锁,而MySQL数据库却没有
查看完整描述

3 回答

?
拉莫斯之舞

TA贡献1820条经验 获得超10个赞

Memcached是全内存的数据缓冲系统,Redis虽然支持数据的持久化,但是全内存毕竟才是其高性能的本质。
作为基于内存的存储系统来说,机器物理内存的大小就是系统能够容纳的最大数据量。
如果需要处理的数据量超过了单台机器的物理内存大小,就需要构建分布式集群来扩展存储能力。

查看完整回答
反对 回复 2019-03-22
?
婷婷同学_

TA贡献1844条经验 获得超8个赞

redis的乐观锁又不是版本号检查,只是使用完watch命令后在服务端将监控键放入一个字典里,当前事务过程中,一旦有被监控键被修改,将会在watch表内写上dirty标志,从而给客户端返回事务失败。
同样MySQL是可以做乐观锁的,表上加字段用于存版本时间戳即可,写操作前获得时间戳,写操作时把之前获得时间戳作为DML谓词条件。
另外MVCC跟乐观锁关系不太一样,MVCC基本还是要将前印象保存到undo块上的,涉及一致读再构造CR块

查看完整回答
反对 回复 2019-03-22
  • 3 回答
  • 0 关注
  • 736 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信