jedis操作

49 阅读1分钟
  • 加锁
 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");  
}