標籤:
package cn.ac.iscas.pebble.dc.redispool;import java.io.File;import java.io.FileOutputStream;import java.util.Date;import java.util.HashMap;import java.util.List;import java.util.Set;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import redis.clients.jedis.Pipeline;import redis.clients.jedis.Response;import cn.ac.iscas.pebble.dc.hdfs.AppendToFile;import cn.ac.iscas.pebble.dc.test.P;public class RedisPoolProxy { private HashMap<String,JedisPool> poolList = new HashMap<String,JedisPool>(); public static Date yes = null; private static RedisPoolProxy _proxy = null; public static RedisPoolProxy getInstance(){ if(null == _proxy){ _proxy = new RedisPoolProxy(); } return _proxy; } public JedisPool getPool(String ip,int port){ JedisPool pool = poolList.get(ip + ":" + port); if(null == pool){ JedisPoolConfig config = new JedisPoolConfig(); 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); } return pool; } public static Integer getDataFromRedis(String ip, int port, int db, String localfilepath,boolean delete){ 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<Set<String>> response = pipeline.keys("*"); pipeline.sync(); Set<String> keys = response.get(); if(null != keys){ pipeline.get(key); pipeline.del(key); } List<Object> result = pipeline.syncAndReturnAll(); for(Object value:result){ if(value instanceof String){ 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); } } } return count; }}
Redis Java API