package cn.com.cennavi.northis.redis;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
//import redis.clients.SerializeUtil;
//import redis.clients.util.*;
public class RedisClient {
private static String redisIp = "1";
private static int port = 6370;
private static JedisPool pool = null;
private static Jedis jRedisImport = new Jedis(redisIp,port);
public static void LoadRedisIpAndPort(String ipValue, String portValue){
//ResourceBundle resourceObj = ResourceBundle.getBundle("/APP/TrafficEyeVecService/Config");
//String ipValue = resourceObj.getString("ip");
//String portValue = resourceObj.getString("port");
redisIp = ipValue;
port = Integer.valueOf(portValue).intValue();
}
public static JedisPool getPool(){
if(pool == null){
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(500);
config.setMaxIdle(5);
config.setMaxWait(1000 * 100);
config.setTestOnBorrow(true);
pool = new JedisPool(config,redisIp,port,60000,"cennavi");
}
return pool;
}
public static void set(String key,byte[] byData){
//jRedisImport.auth("cennavi");
//jRedisImport.set(key.getBytes(), byData);
JedisPool redisPool = null;
Jedis jedis = null;
byte[] byResult = null;
try{
redisPool = getPool();
jedis = redisPool.getResource();
jedis.set(key.getBytes(), byData);
//jedis.setex(key.getBytes(), 0, byData);
}catch(Exception e){
redisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{
redisPool.returnBrokenResource(jedis);
}
}
@SuppressWarnings("deprecation")
public static byte[] get(String key){
JedisPool redisPool = null;
Jedis jedis = null;
byte[] byResult = null;
try{
redisPool = getPool();
jedis = redisPool.getResource();
byResult = jedis.get(key.getBytes());
}catch(Exception e){
redisPool.returnBrokenResource(jedis);
e.printStackTrace();
}finally{
redisPool.returnBrokenResource(jedis);
}
return byResult;
}
@SuppressWarnings("deprecation")
public static List<byte[]> mget(List<String> lstkeys)
{
byte[][] keys = new byte[lstkeys.size()][32];
JedisPool redisPool = null;
Jedis jedis = null;
List<byte[]> byResultBytes = null;
try
{
for (int i = 0; i < lstkeys.size(); i++)
{
keys[i] = lstkeys.get(i).getBytes();
}
redisPool = getPool();
jedis = redisPool.getResource();
byResultBytes = jedis.mget(keys);
} catch (Exception e)
{
redisPool.returnBrokenResource(jedis);
e.printStackTrace();
}
finally
{
redisPool.returnBrokenResource(jedis);
}
return byResultBytes;
}
public static void returnResource(JedisPool pool, Jedis redis){
if(redis != null){
pool.returnBrokenResource(redis);
}
}
}