org.springframework.data.redis.connection.RedisConnection.eval()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(5.6k)|赞(0)|评价(0)|浏览(141)

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

RedisConnection.eval介绍

暂无

代码示例

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

@Override
public <T> T eval(byte[] script, ReturnType returnType, int numKeys, byte[]... keysAndArgs) {
  return convertAndReturn(delegate.eval(script, returnType, numKeys, keysAndArgs), identityConverter);
}

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

protected <T> T eval(RedisConnection connection, RedisScript<T> script, ReturnType returnType, int numKeys,
    byte[][] keysAndArgs, RedisSerializer<T> resultSerializer) {
  Object result;
  try {
    result = connection.evalSha(script.getSha1(), returnType, numKeys, keysAndArgs);
  } catch (Exception e) {
    if (!ScriptUtils.exceptionContainsNoScriptError(e)) {
      throw e instanceof RuntimeException ? (RuntimeException) e : new RedisSystemException(e.getMessage(), e);
    }
    result = connection.eval(scriptBytes(script), returnType, numKeys, keysAndArgs);
  }
  if (script.getResultType() == null) {
    return null;
  }
  return deserializeResult(resultSerializer, result);
}

代码示例来源:origin: org.springframework.data/spring-data-redis

protected <T> T eval(RedisConnection connection, RedisScript<T> script, ReturnType returnType, int numKeys,
    byte[][] keysAndArgs, RedisSerializer<T> resultSerializer) {
  Object result;
  try {
    result = connection.evalSha(script.getSha1(), returnType, numKeys, keysAndArgs);
  } catch (Exception e) {
    if (!ScriptUtils.exceptionContainsNoScriptError(e)) {
      throw e instanceof RuntimeException ? (RuntimeException) e : new RedisSystemException(e.getMessage(), e);
    }
    result = connection.eval(scriptBytes(script), returnType, numKeys, keysAndArgs);
  }
  if (script.getResultType() == null) {
    return null;
  }
  return deserializeResult(resultSerializer, result);
}

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

public <T> T execute(final RedisScript<T> script, final RedisSerializer<?> argsSerializer,
    final RedisSerializer<T> resultSerializer, final List<K> keys, final Object... args) {
  return template.execute((RedisCallback<T>) connection -> {
    final ReturnType returnType = ReturnType.fromJavaType(script.getResultType());
    final byte[][] keysAndArgs = keysAndArgs(argsSerializer, keys, args);
    final int keySize = keys != null ? keys.size() : 0;
    if (connection.isPipelined() || connection.isQueueing()) {
      // We could script load first and then do evalsha to ensure sha is present,
      // but this adds a sha1 to exec/closePipeline results. Instead, just eval
      connection.eval(scriptBytes(script), returnType, keySize, keysAndArgs);
      return null;
    }
    return eval(connection, script, returnType, keySize, keysAndArgs, resultSerializer);
  });
}

代码示例来源:origin: apache/servicemix-bundles

protected <T> T eval(RedisConnection connection, RedisScript<T> script, ReturnType returnType, int numKeys,
    byte[][] keysAndArgs, RedisSerializer<T> resultSerializer) {
  Object result;
  try {
    result = connection.evalSha(script.getSha1(), returnType, numKeys, keysAndArgs);
  } catch (Exception e) {
    if (!ScriptUtils.exceptionContainsNoScriptError(e)) {
      throw e instanceof RuntimeException ? (RuntimeException) e : new RedisSystemException(e.getMessage(), e);
    }
    result = connection.eval(scriptBytes(script), returnType, numKeys, keysAndArgs);
  }
  if (script.getResultType() == null) {
    return null;
  }
  return deserializeResult(resultSerializer, result);
}

代码示例来源:origin: 1991wangliang/tx-lcn

@Override
public <T> T eval(byte[] script, ReturnType returnType, int numKeys, byte[]... keysAndArgs) {
  return redisConnection.eval(script, returnType, numKeys, keysAndArgs);
}

代码示例来源:origin: org.springframework.data/spring-data-redis

@Override
public <T> T eval(byte[] script, ReturnType returnType, int numKeys, byte[]... keysAndArgs) {
  return convertAndReturn(delegate.eval(script, returnType, numKeys, keysAndArgs), identityConverter);
}

代码示例来源:origin: apache/servicemix-bundles

@Override
public <T> T eval(byte[] script, ReturnType returnType, int numKeys, byte[]... keysAndArgs) {
  return convertAndReturn(delegate.eval(script, returnType, numKeys, keysAndArgs), identityConverter);
}

代码示例来源:origin: org.springframework.data/spring-data-redis

public <T> T execute(final RedisScript<T> script, final RedisSerializer<?> argsSerializer,
    final RedisSerializer<T> resultSerializer, final List<K> keys, final Object... args) {
  return template.execute((RedisCallback<T>) connection -> {
    final ReturnType returnType = ReturnType.fromJavaType(script.getResultType());
    final byte[][] keysAndArgs = keysAndArgs(argsSerializer, keys, args);
    final int keySize = keys != null ? keys.size() : 0;
    if (connection.isPipelined() || connection.isQueueing()) {
      // We could script load first and then do evalsha to ensure sha is present,
      // but this adds a sha1 to exec/closePipeline results. Instead, just eval
      connection.eval(scriptBytes(script), returnType, keySize, keysAndArgs);
      return null;
    }
    return eval(connection, script, returnType, keySize, keysAndArgs, resultSerializer);
  });
}

代码示例来源:origin: apache/servicemix-bundles

public <T> T execute(final RedisScript<T> script, final RedisSerializer<?> argsSerializer,
    final RedisSerializer<T> resultSerializer, final List<K> keys, final Object... args) {
  return template.execute((RedisCallback<T>) connection -> {
    final ReturnType returnType = ReturnType.fromJavaType(script.getResultType());
    final byte[][] keysAndArgs = keysAndArgs(argsSerializer, keys, args);
    final int keySize = keys != null ? keys.size() : 0;
    if (connection.isPipelined() || connection.isQueueing()) {
      // We could script load first and then do evalsha to ensure sha is present,
      // but this adds a sha1 to exec/closePipeline results. Instead, just eval
      connection.eval(scriptBytes(script), returnType, keySize, keysAndArgs);
      return null;
    }
    return eval(connection, script, returnType, keySize, keysAndArgs, resultSerializer);
  });
}

相关文章

微信公众号

最新文章

更多

RedisConnection类方法