Commit 1faa8602 authored by dingjy's avatar dingjy

modify

parent 81819b23
...@@ -15,7 +15,10 @@ import java.nio.charset.StandardCharsets; ...@@ -15,7 +15,10 @@ import java.nio.charset.StandardCharsets;
public abstract class CmdHandler { public abstract class CmdHandler {
public Result exec(String key, PikaCmdHandler.IHandle handle) { public Result exec(String key, PikaCmdHandler.IHandle handle) {
byte[] kb = getBytes(key); return exec(getBytes(key), handle);
}
public Result exec(byte[] kb, PikaCmdHandler.IHandle handle) {
JedisPool jp = getRedisShard().getPool(kb); JedisPool jp = getRedisShard().getPool(kb);
if (jp == null) { if (jp == null) {
return ErrorResult.SHARD_DISABLE_RESP; return ErrorResult.SHARD_DISABLE_RESP;
...@@ -48,6 +51,8 @@ public abstract class CmdHandler { ...@@ -48,6 +51,8 @@ public abstract class CmdHandler {
public abstract Result set(String key, byte[] value) throws PikaException; public abstract Result set(String key, byte[] value) throws PikaException;
public abstract Result mget(String key, byte[][] keys) throws PikaException;
public abstract Result setEx(String key, int second, byte[] value) throws PikaException; public abstract Result setEx(String key, int second, byte[] value) throws PikaException;
public abstract Result setNx(String key, byte[] value) throws PikaException; public abstract Result setNx(String key, byte[] value) throws PikaException;
......
...@@ -3,8 +3,11 @@ package com.pika.proxy.handler; ...@@ -3,8 +3,11 @@ package com.pika.proxy.handler;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.pika.proxy.conf.PikaShardLoad; import com.pika.proxy.conf.PikaShardLoad;
import com.pika.proxy.exceptions.PikaException;
import com.pika.proxy.result.*; import com.pika.proxy.result.*;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Map; import java.util.Map;
...@@ -29,6 +32,17 @@ public class PikaCmdHandler extends CmdHandler { ...@@ -29,6 +32,17 @@ public class PikaCmdHandler extends CmdHandler {
return exec(key,(bk,jedis)->new StatusResult(jedis.set(bk,value))); return exec(key,(bk,jedis)->new StatusResult(jedis.set(bk,value)));
} }
public Result mget(String key, byte[][] keys) {
Result[] rs = new Result[keys.length + 1];
rs[0] = exec(key,(bk,jedis)->new BulkResult(jedis.get(bk)));
for(int i=0;i<keys.length;i++){
rs[i + 1] = exec(keys[i],(bk,jedis)->new BulkResult(jedis.get(bk)));
}
return new MultiBulkResult(rs);
}
@Override @Override
public Result setEx(String key, int second, byte[] value) { public Result setEx(String key, int second, byte[] value) {
return exec(key, (bk, jedis) -> new StatusResult(jedis.setex(bk, second, value))); return exec(key, (bk, jedis) -> new StatusResult(jedis.setex(bk, second, value)));
......
...@@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf; ...@@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -57,7 +58,7 @@ public class MultiBulkResult extends Result<Result[]> { ...@@ -57,7 +58,7 @@ public class MultiBulkResult extends Result<Result[]> {
int i = 0; int i = 0;
replies = new BulkResult[set.size()]; replies = new BulkResult[set.size()];
for (String key : set) { for (String key : set) {
replies[i++] = new BulkResult(key.getBytes(Charset.forName("UTF-8"))); replies[i++] = new BulkResult(key.getBytes(StandardCharsets.UTF_8));
} }
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment