Merge branch 'scriptsupport' of git://github.com/ivowiblo/jedis into ivowiblo-scriptsupport
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
package redis.clients.jedis;
|
||||
|
||||
import static redis.clients.jedis.Protocol.Command.SCRIPT;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashSet;
|
||||
import java.util.Iterator;
|
||||
@@ -9,10 +11,12 @@ import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import redis.clients.jedis.BinaryClient.LIST_POSITION;
|
||||
import redis.clients.jedis.Protocol.Keyword;
|
||||
import redis.clients.jedis.exceptions.JedisDataException;
|
||||
import redis.clients.jedis.exceptions.JedisException;
|
||||
import redis.clients.util.JedisByteHashMap;
|
||||
import redis.clients.util.SafeEncoder;
|
||||
import static redis.clients.jedis.Protocol.toByteArray;
|
||||
|
||||
public class BinaryJedis implements BinaryJedisCommands {
|
||||
protected Client client = null;
|
||||
@@ -1660,7 +1664,7 @@ public class BinaryJedis implements BinaryJedisCommands {
|
||||
public void disconnect() {
|
||||
client.disconnect();
|
||||
}
|
||||
|
||||
|
||||
public String watch(final byte[]... keys) {
|
||||
client.watch(keys);
|
||||
return client.getStatusCodeReply();
|
||||
@@ -3006,4 +3010,53 @@ public class BinaryJedis implements BinaryJedisCommands {
|
||||
public Long getDB() {
|
||||
return client.getDB();
|
||||
}
|
||||
|
||||
/**
|
||||
* Evaluates scripts using the Lua interpreter built into Redis starting from version 2.6.0.
|
||||
* <p>
|
||||
*
|
||||
* @return Script result
|
||||
*/
|
||||
public Object eval(byte[] script, List<byte[]> keys, List<byte[]> args) {
|
||||
client.setTimeoutInfinite();
|
||||
client.eval(script, toByteArray(keys.size()), getParams(keys, args));
|
||||
return client.getOne();
|
||||
}
|
||||
private byte[][] getParams(List<byte[]> keys, List<byte[]> args){
|
||||
int keyCount = keys.size();
|
||||
byte[][] params = new byte[keyCount + args.size()][];
|
||||
|
||||
for(int i=0;i<keyCount;i++)
|
||||
params[i] = keys.get(i);
|
||||
|
||||
for(int i=0;i<keys.size();i++)
|
||||
params[keyCount + i] = args.get(i);
|
||||
|
||||
return params;
|
||||
}
|
||||
public Object eval(byte[] script, byte[] keyCount, byte[][] params) {
|
||||
client.setTimeoutInfinite();
|
||||
client.eval(script, keyCount, params);
|
||||
return client.getOne();
|
||||
}
|
||||
|
||||
public byte[] scriptFlush(){
|
||||
client.scriptFlush();
|
||||
return client.getBinaryBulkReply();
|
||||
}
|
||||
|
||||
public List<Long> scriptExists(byte[]... sha1){
|
||||
client.scriptExists(sha1);
|
||||
return client.getIntegerMultiBulkReply();
|
||||
}
|
||||
|
||||
public byte[] scriptLoad(byte[] script){
|
||||
client.scriptLoad(script);
|
||||
return client.getBinaryBulkReply();
|
||||
}
|
||||
|
||||
public byte[] scriptKill(){
|
||||
client.scriptKill();
|
||||
return client.getBinaryBulkReply();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user