packagecn.ac.iscas.pebble.dc.redispool;importjava.io.File;importjava.io.FileOutputStream;importjava.util.Date;importjava.util.HashMap;importjava.util.List;importjava.util.Set;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;importredis.clients.jedis.JedisPoolConfig;importredis.clients.jedis.Pipeline;importredis.clients.jedis.Response;importcn.ac.iscas.pebble.dc.hdfs.AppendToFile;importcn.ac.iscas.pebble.dc.test.P;public classRedisPoolProxy {private HashMap poolList = new HashMap();public static Date yes = null;private static RedisPoolProxy _proxy = null;public staticRedisPoolProxy getInstance(){if(null ==_proxy){
_proxy= newRedisPoolProxy();
}return_proxy;
}public JedisPool getPool(String ip,intport){
JedisPool pool= poolList.get(ip + ":" +port);if(null ==pool){
JedisPoolConfig config= newJedisPoolConfig();
config.setMaxTotal(P.maxTotal);//最大连接数
config.setMaxIdle(P.maxIdle);//最大空闲连接数
config.setMaxWaitMillis(P.maxWaitMillis);//获取连接时的最大等待毫秒数
config.setTestOnBorrow(true);//在获取连接的时候检查有效性, 默认false
pool = new JedisPool(config, ip, port,60*1000);
poolList.put(ip+ ":" +port, pool);
}returnpool;
}public static Integer getDataFromRedis(String ip, int port, int db, String localfilepath,booleandelete){
JedisPool pool=RedisPoolProxy.getInstance().getPool(ip,port);int count = 0;boolean flag = true;if(null !=pool){
Jedis redis= null;try{
redis=pool.getResource();
Pipeline pipeline=redis.pipelined();
pipeline.select(db);
Response> response = pipeline.keys("*");
pipeline.sync();
Set keys =response.get();if(null !=keys){
pipeline.get(key);
pipeline.del(key);
}
List result =pipeline.syncAndReturnAll();for(Object value:result){if(value instanceofString){
System.out.println((String)value+"\n");
count++;
}
}
}catch(Exception e) {
pool.returnBrokenResource(redis);
e.printStackTrace();
flag=false;
}finally{if (null != redis && null !=pool ) {
pool.returnResource(redis);
}
}
}returncount;
}
}