Adding support for bit commands get/setrange
This commit is contained in:
committed by
Jonathan Leibiusky
parent
e12f655fa3
commit
430601f31e
@@ -644,4 +644,12 @@ public class BinaryClient extends Connection {
|
||||
public void getbit(byte[] key, long offset) {
|
||||
sendCommand(GETBIT, key, toByteArray(offset));
|
||||
}
|
||||
|
||||
public void setrange(byte[] key, long offset, byte[] value) {
|
||||
sendCommand(SETRANGE, key, toByteArray(offset), value);
|
||||
}
|
||||
|
||||
public void getrange(byte[] key, long startOffset, long endOffset) {
|
||||
sendCommand(GETRANGE, key, toByteArray(startOffset), toByteArray(endOffset));
|
||||
}
|
||||
}
|
||||
@@ -2927,6 +2927,16 @@ public class BinaryJedis implements BinaryJedisCommands {
|
||||
return client.getIntegerReply();
|
||||
}
|
||||
|
||||
private long setrange(byte[] key, long offset, byte[] value) {
|
||||
client.setrange(key, offset, value);
|
||||
return client.getIntegerReply();
|
||||
}
|
||||
|
||||
private String getrange(byte[] key, long startOffset, long endOffset) {
|
||||
client.getrange(key, startOffset, endOffset);
|
||||
return client.getBulkReply();
|
||||
}
|
||||
|
||||
public Long publish(byte[] channel, byte[] message) {
|
||||
client.publish(channel, message);
|
||||
return client.getIntegerReply();
|
||||
|
||||
@@ -517,6 +517,14 @@ public class Client extends BinaryClient implements Commands {
|
||||
getbit(SafeEncoder.encode(key), offset);
|
||||
}
|
||||
|
||||
public void setrange(String key, long offset, String value) {
|
||||
setrange(SafeEncoder.encode(key), offset, SafeEncoder.encode(value));
|
||||
}
|
||||
|
||||
public void getrange(String key, long startOffset, long endOffset) {
|
||||
getrange(SafeEncoder.encode(key), startOffset, endOffset);
|
||||
}
|
||||
|
||||
public void publish(final String channel, final String message) {
|
||||
publish(SafeEncoder.encode(channel), SafeEncoder.encode(message));
|
||||
}
|
||||
@@ -552,5 +560,4 @@ public class Client extends BinaryClient implements Commands {
|
||||
}
|
||||
subscribe(cs);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -2616,4 +2616,14 @@ public class Jedis extends BinaryJedis implements JedisCommands {
|
||||
client.getbit(key, offset);
|
||||
return client.getIntegerReply() == 1;
|
||||
}
|
||||
|
||||
public long setrange(String key, long offset, String value) {
|
||||
client.setrange(key, offset, value);
|
||||
return client.getIntegerReply();
|
||||
}
|
||||
|
||||
public String getrange(String key, long startOffset, long endOffset) {
|
||||
client.getrange(key, startOffset, endOffset);
|
||||
return client.getBulkReply();
|
||||
}
|
||||
}
|
||||
@@ -27,6 +27,10 @@ public interface JedisCommands {
|
||||
|
||||
boolean getbit(String key, long offset);
|
||||
|
||||
long setrange(String key, long offset, String value);
|
||||
|
||||
String getrange(String key, long startOffset, long endOffset);
|
||||
|
||||
String getSet(String key, String value);
|
||||
|
||||
Long setnx(String key, String value);
|
||||
|
||||
@@ -136,7 +136,7 @@ public final class Protocol {
|
||||
}
|
||||
|
||||
public static enum Command {
|
||||
PING, SET, GET, QUIT, EXISTS, DEL, TYPE, FLUSHDB, KEYS, RANDOMKEY, RENAME, RENAMENX, RENAMEX, DBSIZE, EXPIRE, EXPIREAT, TTL, SELECT, MOVE, FLUSHALL, GETSET, MGET, SETNX, SETEX, MSET, MSETNX, DECRBY, DECR, INCRBY, INCR, APPEND, SUBSTR, HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL, RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LINDEX, LSET, LREM, LPOP, RPOP, RPOPLPUSH, SADD, SMEMBERS, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SRANDMEMBER, ZADD, ZRANGE, ZREM, ZINCRBY, ZRANK, ZREVRANK, ZREVRANGE, ZCARD, ZSCORE, MULTI, DISCARD, EXEC, WATCH, UNWATCH, SORT, BLPOP, BRPOP, AUTH, SUBSCRIBE, PUBLISH, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, ZCOUNT, ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE, SAVE, BGSAVE, BGREWRITEAOF, LASTSAVE, SHUTDOWN, INFO, MONITOR, SLAVEOF, CONFIG, STRLEN, SYNC, LPUSHX, PERSIST, RPUSHX, ECHO, LINSERT, DEBUG, BRPOPLPUSH, SETBIT, GETBIT;
|
||||
PING, SET, GET, QUIT, EXISTS, DEL, TYPE, FLUSHDB, KEYS, RANDOMKEY, RENAME, RENAMENX, RENAMEX, DBSIZE, EXPIRE, EXPIREAT, TTL, SELECT, MOVE, FLUSHALL, GETSET, MGET, SETNX, SETEX, MSET, MSETNX, DECRBY, DECR, INCRBY, INCR, APPEND, SUBSTR, HSET, HGET, HSETNX, HMSET, HMGET, HINCRBY, HEXISTS, HDEL, HLEN, HKEYS, HVALS, HGETALL, RPUSH, LPUSH, LLEN, LRANGE, LTRIM, LINDEX, LSET, LREM, LPOP, RPOP, RPOPLPUSH, SADD, SMEMBERS, SREM, SPOP, SMOVE, SCARD, SISMEMBER, SINTER, SINTERSTORE, SUNION, SUNIONSTORE, SDIFF, SDIFFSTORE, SRANDMEMBER, ZADD, ZRANGE, ZREM, ZINCRBY, ZRANK, ZREVRANK, ZREVRANGE, ZCARD, ZSCORE, MULTI, DISCARD, EXEC, WATCH, UNWATCH, SORT, BLPOP, BRPOP, AUTH, SUBSCRIBE, PUBLISH, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, ZCOUNT, ZRANGEBYSCORE, ZREMRANGEBYRANK, ZREMRANGEBYSCORE, ZUNIONSTORE, ZINTERSTORE, SAVE, BGSAVE, BGREWRITEAOF, LASTSAVE, SHUTDOWN, INFO, MONITOR, SLAVEOF, CONFIG, STRLEN, SYNC, LPUSHX, PERSIST, RPUSHX, ECHO, LINSERT, DEBUG, BRPOPLPUSH, SETBIT, GETBIT, SETRANGE, GETRANGE;
|
||||
|
||||
public final byte[] raw;
|
||||
|
||||
|
||||
@@ -79,6 +79,16 @@ public class ShardedJedis extends BinaryShardedJedis implements JedisCommands {
|
||||
return j.getbit(key, offset);
|
||||
}
|
||||
|
||||
public long setrange(String key, long offset, String value) {
|
||||
Jedis j = getShard(key);
|
||||
return j.setrange(key, offset, value);
|
||||
}
|
||||
|
||||
public String getrange(String key, long startOffset, long endOffset) {
|
||||
Jedis j = getShard(key);
|
||||
return j.getrange(key, startOffset, endOffset);
|
||||
}
|
||||
|
||||
public String getSet(String key, String value) {
|
||||
Jedis j = getShard(key);
|
||||
return j.getSet(key, value);
|
||||
|
||||
@@ -413,6 +413,16 @@ public class Transaction extends BinaryTransaction {
|
||||
return client.getStatusCodeReply() == "1";
|
||||
}
|
||||
|
||||
public long setrange(String key, long offset, String value) {
|
||||
client.setrange(key, offset, value);
|
||||
return client.getIntegerReply();
|
||||
}
|
||||
|
||||
public String getrange(String key, long startOffset, long endOffset) {
|
||||
client.getrange(key, startOffset, endOffset);
|
||||
return client.getBulkReply();
|
||||
}
|
||||
|
||||
public String linsert(final String key, final LIST_POSITION where,
|
||||
final String pivot, final String value) {
|
||||
client.linsert(key, where, pivot, value);
|
||||
|
||||
Reference in New Issue
Block a user