解决方案: 在释放锁时判断锁标识是否是自己的锁
修改:存入线程标识用UUID表示 释放锁时判断与当前线程标识是否一致
@Override
public void unlock() {
// 获取线程标识
String threadId = ID_PREFIX + Thread.currentThread().getId();
// 获取锁中标识
String lockValue = stringRedisTemplate.opsForValue().get(kEY_PREFIX + name);
// 判断是否是当前线程持有锁
if (threadId.equals(lockValue)) {
// 释放锁
stringRedisTemplate.delete(kEY_PREFIX + name);
}
}