Pipeline eval and evalsha.

This commit is contained in:
anthonyu
2013-08-20 19:43:32 -07:00
parent 62c30dfe8b
commit bc86b1210b
4 changed files with 98 additions and 2 deletions

View File

@@ -2739,7 +2739,7 @@ public class Jedis extends BinaryJedis implements JedisCommands, MultiKeyCommand
client.rollbackTimeout();
}
private String[] getParams(List<String> keys, List<String> args) {
protected static String[] getParams(List<String> keys, List<String> args) {
int keyCount = keys.size();
int argCount = args.size();

View File

@@ -959,4 +959,33 @@ abstract class PipelineBase extends Queable implements
return getResponse(BuilderFactory.LONG);
}
public Response<String> eval(String script) {
return this.eval(script, 0, new String[0]);
}
public Response<String> eval(String script, List<String> keys, List<String> args) {
String[] argv = Jedis.getParams(keys, args);
return this.eval(script, keys.size(), argv);
}
public Response<String> eval(String script, int numKeys, String[] argv) {
getClient(script).eval(script, numKeys, argv);
return getResponse(BuilderFactory.STRING);
}
public Response<String> evalsha(String script) {
return this.evalsha(script, 0, new String[0]);
}
public Response<String> evalsha(String sha1, List<String> keys, List<String> args) {
String[] argv = Jedis.getParams(keys, args);
return this.evalsha(sha1, keys.size(), argv);
}
public Response<String> evalsha(String sha1, int numKeys, String[] argv) {
getClient(sha1).evalsha(sha1, numKeys, argv);
return getResponse(BuilderFactory.STRING);
}
}