Commit 1faa8602 authored by dingjy's avatar dingjy

modify

parent 81819b23
......@@ -15,7 +15,10 @@ import java.nio.charset.StandardCharsets;
public abstract class CmdHandler {
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);
if (jp == null) {
return ErrorResult.SHARD_DISABLE_RESP;
......@@ -48,6 +51,8 @@ public abstract class CmdHandler {
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 setNx(String key, byte[] value) throws PikaException;
......
......@@ -3,8 +3,11 @@ package com.pika.proxy.handler;
import com.google.common.collect.Maps;
import com.pika.proxy.conf.PikaShardLoad;
import com.pika.proxy.exceptions.PikaException;
import com.pika.proxy.result.*;
import org.springframework.stereotype.Component;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import javax.annotation.Resource;
import java.util.Map;
......@@ -29,6 +32,17 @@ public class PikaCmdHandler extends CmdHandler {
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
public Result setEx(String key, int second, byte[] value) {
return exec(key, (bk, jedis) -> new StatusResult(jedis.setex(bk, second, value)));
......
......@@ -4,6 +4,7 @@ import io.netty.buffer.ByteBuf;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.List;
import java.util.Map;
......@@ -57,7 +58,7 @@ public class MultiBulkResult extends Result<Result[]> {
int i = 0;
replies = new BulkResult[set.size()];
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