import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;
/**
* @author liu
*
* @date 2015-8-25
* @version 1.0
*/
public class InitialRedis {
protected Jedis jedis;//非切片客戶端連接
private JedisPool jedisPool;//非切片連接池
protected ShardedJedis shardedJedis;//切片(分佈式)客戶端連接
private ShardedJedisPool shardedJedisPool;//切片連接池
public InitialRedis()
{
initialPool();
initialShardedPool();
shardedJedis = shardedJedisPool.getResource();
jedis = jedisPool.getResource();
}
/**
* 初始化非切片池
*/
private void initialPool()
{
// 池基本配置
JedisPoolConfig config = new JedisPoolConfig();
//config.setMaxActive(20); // 最大連接數
config.setMaxIdle(5); // 最大空閒連接數
config.setMaxWaitMillis(1000l); //獲取連接時的最大等待毫秒數
config.setTestOnBorrow(false); //在空閒時檢查有效性, 默認false
jedisPool = new JedisPool(config,"11.211.145.10",7001);
}
/**
* 初始化切片池
*/
private void initialShardedPool()
{
// 池基本配置
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(5);
config.setMaxWaitMillis(1000l);
config.setTestOnBorrow(false);
// slave 連接, 這裏實現了集羣的功能,配置多個redis服務實現請求的分配進行負載均衡
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add(new JedisShardInfo("11.211.145.10", 7001, "master"));
// 構造池
shardedJedisPool = new ShardedJedisPool(config, shards);
}
}
import java.util.List;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
import net.sf.json.JSONObject;
import org.junit.Test;
/**
* @author liu
*
* @date 2015-8-26
* @version 1.0
*/
public class ParseJson extends InitialRedis{
@Test
public void getjsondata() throws IOException{
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator() ;
Map<String,Map<String,String>> map=new HashMap<String,Map<String,String>>();
Map<String,String> jsonmap=new HashMap<String,String>();
long starttime=System.currentTimeMillis();
while(it.hasNext()){
String key = it.next();
//String type=jedis.type(key);
String value=jedis.get(key);
String keyvalue=key+":"+value;
System.out.println("keyvalue::"+keyvalue);
JSONObject jsonObject=JSONObject.fromObject(value);
Iterator itor=jsonObject.keys();
List<String> jsonkeylist=new ArrayList<String>();
while(itor.hasNext()){
String jsonkey=itor.next().toString();
String jsonvalue=jsonObject.getString(jsonkey);
//System.out.println(jsonkey+":"+jsonvalue);
//jsonkeylist.add(jsonkey) ;
jsonmap.put(jsonkey, jsonvalue);
}
}
}