使用setNX 若key存在则不放入value,key不存在则放入value。
给key设置加锁时间,以免发生死锁。
这里可能有问题,如果执行时间太长,下一个请求来了,然后上一个请求执行finally会把其他锁的key删掉,待解决
// redis key
String key = ....;
try {
Boolean isExist = jimClient.setNX(key, new Date().toString());
jimClient.expire(key, 3, TimeUnit.MINUTES);
if (!isExist) {
//抛异常
...
}
// 逻辑处理
...
} finally {
jimClient.del(key);
}