- 加锁
String result = jedis.set(lockKey, requestId, "NX", "EX", 5);
return "OK".equals(result);
"EX"选项的过期时间以秒为单位,如果要改为毫秒为单位时使用PX代替
- 释放锁
String script = "if redis.call('get', KEYS[1]) == ARGV[1] then " +
" return redis.call('del', KEYS[1]) " +
"else " +
" return 0 " +
"end";
Object result = jedis.eval(script, Collections.singletonList(lockKey), Collections.singletonList(requestId));
if ("1".equals(result.toString())) {
System.out.println("Lock released");
} else {
System.out.println("Failed to release lock");
}