乐观锁使用:
1. 根据LockKey获取数据,如果锁了,且在有效时间范围内,那就返回false
2. 如果没有数据则初始化,version=0
3. 更新数据
UPDATE 表
SET version=version + 1, // 版本底层,也可以使用MySQL的自动更新时间戳
lock_status=#{status}, // 是否锁
last_execute_time=#{currentTime} // 锁的时间
WHERE lock_key= #{lockKey} and version=#{version} // 控制数据被更新
4.判断更新数据的数量
高并发缓存无锁机制-使用签名
缓存能接受没有命中,但不能返回旧数据
更新数据添加前签名
读取的时候如果不一致则返回null
参考:https://www.w3cschool.cn/architectroad/architectroad-high-concurrent-lockless-cache.html