redis.clients.jedis.Transaction.exec()方法的使用及代码示例

x33g5p2x  于2022-01-30 转载在 其他  
字(5.9k)|赞(0)|评价(0)|浏览(284)

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

Transaction.exec介绍

暂无

代码示例

代码示例来源:origin: qiurunze123/miaosha

/**
 * watch 监控多个key 一防止其他地方调用释放锁的时候对这个key进行修改 那么事务里面的代码就不会被执行 !
 */
  public boolean releaseLock(String key , String value){
    try {
      Jedis jedis = RedisManager.getJedis();
      while (true){
        jedis.watch(key);
        if(value.equals(jedis.get(key))){
          Transaction transaction = jedis.multi();
          transaction.del(key);
          List<Object> list = transaction.exec();
          if(list ==null){
            continue;
          }
          jedis.unwatch();
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
    return false;
  }
}

代码示例来源:origin: spring-projects/spring-data-redis

@Override
public List<Object> exec() {
  try {
    if (isPipelined()) {
      pipeline(newJedisResult(getRequiredPipeline().exec(),
          new TransactionResultConverter<>(new LinkedList<>(txResults), JedisConverters.exceptionConverter())));
      return null;
    }
    if (transaction == null) {
      throw new InvalidDataAccessApiUsageException("No ongoing transaction. Did you forget to call multi?");
    }
    List<Object> results = transaction.exec();
    return !CollectionUtils.isEmpty(results)
        ? new TransactionResultConverter<>(txResults, JedisConverters.exceptionConverter()).convert(results)
        : results;
  } catch (Exception ex) {
    throw convertJedisAccessException(ex);
  } finally {
    txResults.clear();
    transaction = null;
  }
}

代码示例来源:origin: Impetus/Kundera

@Override
public void onCommit()
{
  for (Transaction resource : resources)
  {
    resource.exec();
  }
  isTransactionInProgress = false;
}

代码示例来源:origin: Impetus/Kundera

synchronized void onExecute(Transaction tx)
  {
    tx.exec();
    resources.remove(tx);
  }
}

代码示例来源:origin: Exrick/x-boot

List<Object> results = transaction.exec();
long counter = (Long) results.get(results.size() - 1);
transaction.zadd(BUCKET + point, counter, token);
transaction.zrank(BUCKET + point, token);
results = transaction.exec();
  transaction.exec();

代码示例来源:origin: org.apache.apex/malhar-contrib

@Override
public void commitTransaction()
{
 transaction.exec();
 transaction = null;
}

代码示例来源:origin: apache/apex-malhar

@Override
public void commitTransaction()
{
 transaction.exec();
 transaction = null;
}

代码示例来源:origin: io.leopard/leopard-redis

@Override
  public Object execute(Jedis jedis) {
    Transaction transaction = jedis.multi();
    for (int i = 0; i < keyList.size(); i++) {
      transaction.set(keyList.get(i), valueList.get(i));
    }
    transaction.exec();
    return true;
  }
});

代码示例来源:origin: io.leopard/leopard-redis

@Override
  public Object execute(Jedis jedis) {
    Transaction transaction = jedis.multi();
    for (int i = 0; i < keyList.size(); i++) {
      transaction.append(keyList.get(i), valueList.get(i));
      transaction.expire(keyList.get(i), seconds);
    }
    transaction.exec();
    return true;
  }
});

代码示例来源:origin: com.github.sogyf/goja-mvt

public static List<Object> tx(JedisAtom jedisAtom) {
  Jedis jedis = pool.getResource();
  Transaction trans = jedis.multi();
  jedisAtom.action(trans);
  return trans.exec();
}

代码示例来源:origin: org.leapframework/jmms-modules-redis

/**
 * Executes in a transaction.
 */
public final <T> Result<T> execTrans(Function<Jedis, T> func) {
  return exec((redis) -> {
    Transaction t = redis.multi();
    T r = func.apply(redis);
    t.exec();
    return r;
  });
}

代码示例来源:origin: com.sangupta/dryrun

@Override
public void multiSet(Map<? extends K, ? extends V> map) {
  Transaction transaction = this.mockJedis.multi();
  for(Entry<? extends K, ? extends V> entry : map.entrySet()) {
    K key = entry.getKey();
    V value = entry.getValue();
    
    byte[] keyBytes = this.template.keySerializer.serialize(key);
    byte[] valueBytes = this.template.valueSerializer.serialize(value);
    
    transaction.set(keyBytes, valueBytes);
  }
  
  transaction.exec();
}

代码示例来源:origin: pivotalsoftware/session-managers

@Override
public void clean(String sessionsKey) {
  try(Jedis jedis = this.jedisPool.getResource()) {
    Set<String> sessions = jedis.smembers(sessionsKey);
    String[] sessionsArray = sessions.toArray(new String[sessions.size()]);
    Transaction t = jedis.multi();
    t.srem(sessionsKey, sessionsArray);
    t.del(sessionsArray);
    t.exec();
  }
}

代码示例来源:origin: pivotalsoftware/session-managers

@Override
public void del(String sessionsKey, String key) {
  try(Jedis jedis = this.jedisPool.getResource()) {
    Transaction t = jedis.multi();
    t.srem(sessionsKey, key);
    t.del(key);
    t.exec();
  }
}

代码示例来源:origin: io.leopard/leopard-redis

@Override
  public Object execute(Jedis jedis) {
    Transaction transaction = jedis.multi();
    transaction.append(key, value);
    transaction.expire(key, seconds);
    transaction.exec();
    return true;
  }
});

代码示例来源:origin: com.github.biezhi/unique-support-redis

@Override
  Object execute() {
    Transaction transaction = jedis.getShard(key).multi();
    transaction.del(key);
    for (String value : values) {
      transaction.rpush(key, value);
    }
    transaction.exec();
    return null;
  }
}.getResult();

代码示例来源:origin: AmadeusITGroup/HttpSessionReplacer

@Override
public <T> RedisFacade.ResponseFacade<T> transaction(final byte[] key, final TransactionRunner<T> transaction) {
 final Transaction t = jedis().multi();
 RedisFacade.ResponseFacade<T> response = transaction.run(wrapJedisTransaction(t));
 t.exec();
 return response;
}

代码示例来源:origin: pivotalsoftware/session-managers

@Test
public void set() throws UnsupportedEncodingException {
  byte[] session = "session".getBytes();
  this.jedisNodeClient.set("key", SESSIONS_KEY, session, timeout);
  verify(this.transaction, times(1)).setex("key".getBytes(Protocol.CHARSET), timeout, session);
  verify(this.transaction, times(1)).sadd(SESSIONS_KEY,"key");
  verify(this.transaction, times(1)).exec();
  verify(this.jedis, times(1)).close();
}

代码示例来源:origin: com.intoverflow.booster/booster-core

@Override
public void evict(Object key) {
  redisContext.run(jedis -> {
    byte[] keyBytes = toKeyBytes(key);
    Transaction multi = jedis.multi();
    multi.del(keyBytes);
    multi.zrem(keysetBytes, keyBytes);
    multi.exec();
  });
}

代码示例来源:origin: KleeGroup/vertigo

@Override
public void unregister(final Node node) {
  try (final Jedis jedis = redisConnector.getResource()) {
    try (final Transaction tx = jedis.multi()) {
      tx.del(VERTIGO_NODE + node.getId());
      tx.srem(VERTIGO_NODES, node.getId());
      tx.exec();
    } catch (final IOException e) {
      throw WrappedException.wrap(e);
    }
  }
}

相关文章

微信公众号

最新文章

更多

Transaction类方法