分布式锁用 Redis 还是 Zookeeper?https://mp.weixin.qq.com/s/Fw54yeKOY6mAlqJyx7HTDw
package com.xxx.xxx;//你的包名
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.data.redis.connection.RedisConnection;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisCluster;
import redis.clients.jedis.JedisCommands;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* @author Jiangjunjie
* @Date 2020/7/7
* 通过给set NX(一个有锁,其他线程不能再获取锁),PX(设置锁的自动过期时间) 进行保证redis的值以及过期时间的原子性
* 通过给锁设置一个拥有者的标识,即每次在获取锁的时候,生成一个随机不唯一的串放入当前线程,释放锁的时候先去判断对应的值