io.vertx.redis.RedisClient.setnx()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(3.0k)|赞(0)|评价(0)|浏览(115)

本文整理了Java中io.vertx.redis.RedisClient.setnx方法的一些代码示例,展示了RedisClient.setnx的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RedisClient.setnx方法的具体详情如下:
包路径:io.vertx.redis.RedisClient
类名称:RedisClient
方法名:setnx

RedisClient.setnx介绍

[英]Set the value of a key, only if the key does not exist
[中]仅当密钥不存在时,才设置密钥的值

代码示例

代码示例来源:origin: io.vertx/vertx-rx-java

/**
 * Set the value of a key, only if the key does not exist
 * @param key Key of which value to set
 * @param value New value for the key
 * @param handler Handler for the result of this call.
 * @return 
 */
public io.vertx.rxjava.redis.RedisClient setnx(String key, String value, Handler<AsyncResult<Long>> handler) { 
 delegate.setnx(key, value, handler);
 return this;
}

代码示例来源:origin: vert-x3/vertx-rx

/**
 * Set the value of a key, only if the key does not exist
 * @param key Key of which value to set
 * @param value New value for the key
 * @param handler Handler for the result of this call.
 * @return 
 */
public io.vertx.rxjava.redis.RedisClient setnx(String key, String value, Handler<AsyncResult<Long>> handler) { 
 delegate.setnx(key, value, handler);
 return this;
}

代码示例来源:origin: org.swisspush/gateleen-queue

private static void handleStorage(RedisClient redisClient, final String redisKey, int ttl, final Handler<Boolean> callback) {
  // read from storage
  redisClient.get(redisKey, reply -> {
    if(reply.failed()){
      log.error("get command for redisKey '" + redisKey + "' resulted in cause " + logCause(reply));
      return;
    }
    if (!DEFAULT_REDIS_ENTRY_VALUE.equals(reply.result())) {
      // save to storage
      redisClient.setnx(redisKey, DEFAULT_REDIS_ENTRY_VALUE, setnxReply -> {
        if(setnxReply.failed()){
          log.error("set command for redisKey '" + redisKey + "' resulted in cause " + logCause(setnxReply));
          return;
        }
        // set expire
        redisClient.expire(redisKey, ttl, expireReply -> {
          if(expireReply.failed()){
            log.error("expire command for redisKey '" + redisKey + "' resulted in cause " + logCause(expireReply));
          }
        });
      });
      callback.handle(Boolean.FALSE);
    } else {
      log.info("received a duplicate request for redisKey: " + redisKey);
      callback.handle(Boolean.TRUE);
    }
  });
}

代码示例来源:origin: org.swisspush.gateleen/gateleen-queue

private static void handleStorage(RedisClient redisClient, final String redisKey, int ttl, final Handler<Boolean> callback) {
  // read from storage
  redisClient.get(redisKey, reply -> {
    if(reply.failed()){
      log.error("get command for redisKey '" + redisKey + "' resulted in cause " + logCause(reply));
      return;
    }
    if (!DEFAULT_REDIS_ENTRY_VALUE.equals(reply.result())) {
      // save to storage
      redisClient.setnx(redisKey, DEFAULT_REDIS_ENTRY_VALUE, setnxReply -> {
        if(setnxReply.failed()){
          log.error("set command for redisKey '" + redisKey + "' resulted in cause " + logCause(setnxReply));
          return;
        }
        // set expire
        redisClient.expire(redisKey, ttl, expireReply -> {
          if(expireReply.failed()){
            log.error("expire command for redisKey '" + redisKey + "' resulted in cause " + logCause(expireReply));
          }
        });
      });
      callback.handle(Boolean.FALSE);
    } else {
      log.info("received a duplicate request for redisKey: " + redisKey);
      callback.handle(Boolean.TRUE);
    }
  });
}

相关文章

微信公众号

最新文章

更多

RedisClient类方法