
架构
erlanp
这个作者很懒,什么都没留下…
展开
-
乐观锁version和时间戳外的实现方式
乐观锁并不会使用数据库提供的锁机制第一种:version版本号使用版本号时,可以在数据初始化时指定一个版本号,每次对数据的更新操作都对版本号执行+1操作version类型为int就够了,保守点用long,建议用long不出错version = version +1 是原子化操作第二种:时间戳来实现你不能从web服务器取得时间,要以数据库服务器时间为准version类型为DATETIMEversion = now()now()精度百万分之一秒,但仍然可能重复,只是概率极小。第三种.原创 2020-11-01 23:15:45 · 1035 阅读 · 0 评论 -
缓存更新的套路之基于数据的version
https://coolshell.cn/articles/17416.html这文章很有深度,我进行了一些思考。写更新缓存数据代码时,先删除缓存,然后再更新数据库的方法,如果改变下删除缓存的方式,是可以简单地解决问题地先删除缓存,可以不是真的删除:可以改为软删除,记录缓存的version和过期时间(比数据库过期时间长一秒就可以)——当查询操作操作发现软件删除时,会直接从数据库取数据,数据库数据的vesion小于等于缓存version时就不更新缓存,大于缓存version时就更新。如果数据库操作失原创 2020-10-29 00:34:18 · 290 阅读 · 0 评论