前言
本文主要涉及:
- Redis分布式锁工具的Java实现
- 锁记录误删的避免
- 锁持有者判断与锁删除操作的原子性保障
实现
实现分布式锁工具主要分为建立锁和删除锁两部分:
- 建立锁
- 尝试调用SETNX的API,获取结果
- 返回结果(不做获取失败时的重新尝试)
- 删除锁
- 尝试调用EVAL的API,执行Lua脚本:
- 获取锁的value
- 根据value判断是否为锁持有者
- 是:删除锁记录,return 1
- 否:不做操作,return 0
- 尝试调用EVAL的API,执行Lua脚本:
Redis与Java中的原子性
版权声明:本文为weixin_43008154原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。