星空网 > 软件开发 > Java

redis setnx 分布式锁

  private final String RedisLockKey = "RedLock";  private final long altTimeout = 1 * 60 * 60 * 1000L;// 1hour  /**   * 获取redis分布式锁   *   * @author Administrator   * @version 1.0   * @return true:获得锁权限 false:未获得锁权限   */  private synchronized boolean getRedLock() {    Long flag = jedis.setnx(RedisLockKey, String.valueOf(System.currentTimeMillis() + altTimeout + 1L));    if (flag == 0L) {      String value = jedis.get(RedisLockKey);      long longVal = Long.parseLong(value);      if (longVal > System.currentTimeMillis()) {// 未过期        return Boolean.FALSE;      } else {// 过期        String _value =          jedis.getSet(RedisLockKey, String.valueOf(System.currentTimeMillis() + altTimeout + 1L));        long _longVal = Long.parseLong(_value);        if (_longVal > System.currentTimeMillis()) {          return Boolean.FALSE;        } else {          return Boolean.TRUE;        }      }    } else {      return Boolean.TRUE;    }  }

 




原标题:redis setnx 分布式锁

关键词:Redis

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流