Redis提供了Lua脚本功能,在一个脚本中编写多条Redis命令,确保多条redis命令执行时的原子性。(让判断线程标识和释放锁原子执行)
1.下载lua插件
2.创建lua文件
3.调用lua脚本
java
public void unlock() {
//调用lua脚本原子性的判断线程标识,和释放锁。
stringRedisTemplate.execute(UNLOCK_SCRIPT,
Collections.singletonList(KEY_PREFIX + name),
ID_PREFIX + Thread.currentThread().getId());
}