// Path: src/main/java/org/light/rtc/util/Constants.java
// public class Constants {
// 	// es cluster config
// 	public static String esClusterName = ConfigProperty.getProps().getProperty("cluterName");
// 	public static String esClusterHosts = ConfigProperty.getProps().getProperty("clusterHosts");
// 	
// 	//rabbitmq config
// 	public final static String mqHost = ConfigProperty.getProps().getProperty("mq.host");
// 	public final static int mqPort = Integer.parseInt(ConfigProperty.getProps().getProperty("mq.port"));
// 	public final static String mqUser = ConfigProperty.getProps().getProperty("mq.user");
// 	public final static String mqPswd = ConfigProperty.getProps().getProperty("mq.pswd");
// 	public final static String mqVhost = ConfigProperty.getProps().getProperty("mq.vhost");
// 	public final static String mqExchange = ConfigProperty.getProps().getProperty("mq.exchange");
// 	public final static String mqClickKey = ConfigProperty.getProps().getProperty("mq.clickRoutKey");
// 	public final static String mqClickFirstQu = ConfigProperty.getProps().getProperty("mq.clickQueue1");
// 	public final static String mqClickSecondQu = ConfigProperty.getProps().getProperty("mq.clickQueue2");
// 	
// 	//kafka config
// 	public final static String kfZkServers = ConfigProperty.getProps().getProperty("kfZkServers");
// 	public final static String kfGroupId = ConfigProperty.getProps().getProperty("kfGroupId");
// 	public final static String kfAutoOffsetReset = ConfigProperty.getProps().getProperty("kfAutoOffsetReset");
// 	public final static String kfTopic = ConfigProperty.getProps().getProperty("kfTopic");
// 	
// 	//Timer config (unit : seconds)
// 	public final static int mqDoBatchTimer = Integer.parseInt(ConfigProperty.getProps().getProperty("mqDoBatchTimer"));
// 	
// 	//AdminNode hosts and ports for DataCollectNode using
// 	public final static String adminNodeHosts = ConfigProperty.getProps().getProperty("adminNodeHosts");
// 	
// 	//AdminNode server port
// 	public final static int adminNodePort = Integer.parseInt(ConfigProperty.getProps().getProperty("adminNodePort"));
// 	
// 	//JobNode hosts and ports  for AdminNode using
// 	public final static String jobNodeHosts = ConfigProperty.getProps().getProperty("jobNodeHosts");
// 	
// 	//JobNode server port
// 	public final static int jobNodePort = Integer.parseInt(ConfigProperty.getProps().getProperty("jobNodePort"));
// 	
// 	//rtc timer
// 	public final static int rtcPeriodSeconds = Integer.parseInt(ConfigProperty.getProps().getProperty("rtcPeriodSeconds"));
// 	
// 	public final static int adminNodeId = Integer.parseInt(ConfigProperty.getProps().getProperty("adminNodeId"));
// 	
// 	public final static int minJobBatchNum = Integer.parseInt(ConfigProperty.getProps().getProperty("minJobBatchNum"));
// 	public final static int atomJobBatchNum = Integer.parseInt(ConfigProperty.getProps().getProperty("atomJobBatchNum"));
// 	
// 	//redis cluster config
// 	public final static String redisHosts = ConfigProperty.getProps().getProperty("redisHosts");
// 	public final static String redisPswd = ConfigProperty.getProps().getProperty("redisPswd");
// 	
// 	public final static String delayTaskDir = ConfigProperty.getProps().getProperty("delayTaskDir");
// 	public final static String delayTaskFileSurfix = ConfigProperty.getProps().getProperty("delayTaskFileSurfix");
// 	public final static int maxDelayTaskNum = Integer.parseInt(ConfigProperty.getProps().getProperty("maxDelayTaskNum"));
// 	
// }


import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.light.rtc.util.Constants;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.Pipeline;
import redis.clients.jedis.Response;
import redis.clients.jedis.ShardedJedis;

package org.light.rtc.dao;





public class RedisDao {
	private static RedisDao instance;
	
	private ShardedJedis jedis;
//	private Jedis jedis;
	
	private RedisDao(){
		this.init();
	}

	public void init(){
        String[] redisList = Constants.redisHosts.split(",");
        ArrayList<JedisShardInfo> userMasterWriteJedisShardInfoList = new ArrayList<JedisShardInfo>();
        for (int i = 0; i < redisList.length; i++) {
            String[] hostPorts = redisList[i].split(":");
            JedisShardInfo userMasterWriteJedis = null;
            try {
                userMasterWriteJedis = new JedisShardInfo(InetAddress.getByName(hostPorts[0]).getHostAddress(), Integer.parseInt(hostPorts[1]), 10000);

// Path: src/main/java/org/light/rtc/util/Constants.java
// public class Constants {
// 	// es cluster config
// 	public static String esClusterName = ConfigProperty.getProps().getProperty("cluterName");
// 	public static String esClusterHosts = ConfigProperty.getProps().getProperty("clusterHosts");
// 	
// 	//rabbitmq config
// 	public final static String mqHost = ConfigProperty.getProps().getProperty("mq.host");
// 	public final static int mqPort = Integer.parseInt(ConfigProperty.getProps().getProperty("mq.port"));
// 	public final static String mqUser = ConfigProperty.getProps().getProperty("mq.user");
// 	public final static String mqPswd = ConfigProperty.getProps().getProperty("mq.pswd");
// 	public final static String mqVhost = ConfigProperty.getProps().getProperty("mq.vhost");
// 	public final static String mqExchange = ConfigProperty.getProps().getProperty("mq.exchange");
// 	public final static String mqClickKey = ConfigProperty.getProps().getProperty("mq.clickRoutKey");
// 	public final static String mqClickFirstQu = ConfigProperty.getProps().getProperty("mq.clickQueue1");
// 	public final static String mqClickSecondQu = ConfigProperty.getProps().getProperty("mq.clickQueue2");
// 	
// 	//kafka config
// 	public final static String kfZkServers = ConfigProperty.getProps().getProperty("kfZkServers");
// 	public final static String kfGroupId = ConfigProperty.getProps().getProperty("kfGroupId");
// 	public final static String kfAutoOffsetReset = ConfigProperty.getProps().getProperty("kfAutoOffsetReset");
// 	public final static String kfTopic = ConfigProperty.getProps().getProperty("kfTopic");
// 	
// 	//Timer config (unit : seconds)
// 	public final static int mqDoBatchTimer = Integer.parseInt(ConfigProperty.getProps().getProperty("mqDoBatchTimer"));
// 	
// 	//AdminNode hosts and ports for DataCollectNode using
// 	public final static String adminNodeHosts = ConfigProperty.getProps().getProperty("adminNodeHosts");
// 	
// 	//AdminNode server port
// 	public final static int adminNodePort = Integer.parseInt(ConfigProperty.getProps().getProperty("adminNodePort"));
// 	
// 	//JobNode hosts and ports  for AdminNode using
// 	public final static String jobNodeHosts = ConfigProperty.getProps().getProperty("jobNodeHosts");
// 	
// 	//JobNode server port
// 	public final static int jobNodePort = Integer.parseInt(ConfigProperty.getProps().getProperty("jobNodePort"));
// 	
// 	//rtc timer
// 	public final static int rtcPeriodSeconds = Integer.parseInt(ConfigProperty.getProps().getProperty("rtcPeriodSeconds"));
// 	
// 	public final static int adminNodeId = Integer.parseInt(ConfigProperty.getProps().getProperty("adminNodeId"));
// 	
// 	public final static int minJobBatchNum = Integer.parseInt(ConfigProperty.getProps().getProperty("minJobBatchNum"));
// 	public final static int atomJobBatchNum = Integer.parseInt(ConfigProperty.getProps().getProperty("atomJobBatchNum"));
// 	
// 	//redis cluster config
// 	public final static String redisHosts = ConfigProperty.getProps().getProperty("redisHosts");
// 	public final static String redisPswd = ConfigProperty.getProps().getProperty("redisPswd");
// 	
// 	public final static String delayTaskDir = ConfigProperty.getProps().getProperty("delayTaskDir");
// 	public final static String delayTaskFileSurfix = ConfigProperty.getProps().getProperty("delayTaskFileSurfix");
// 	public final static int maxDelayTaskNum = Integer.parseInt(ConfigProperty.getProps().getProperty("maxDelayTaskNum"));
// 	
// }


// Path: src/main/java/org/light/rtc/dao/RedisDao.java
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import org.light.rtc.util.Constants;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.Pipeline;
import redis.clients.jedis.Response;
import redis.clients.jedis.ShardedJedis;

package org.light.rtc.dao;





public class RedisDao {
	private static RedisDao instance;
	
	private ShardedJedis jedis;
//	private Jedis jedis;
	
	private RedisDao(){
		this.init();
	}

	public void init(){
        String[] redisList = Constants.redisHosts.split(",");
        ArrayList<JedisShardInfo> userMasterWriteJedisShardInfoList = new ArrayList<JedisShardInfo>();
        for (int i = 0; i < redisList.length; i++) {
            String[] hostPorts = redisList[i].split(":");
            JedisShardInfo userMasterWriteJedis = null;
            try {
                userMasterWriteJedis = new JedisShardInfo(InetAddress.getByName(hostPorts[0]).getHostAddress(), Integer.parseInt(hostPorts[1]), 10000);

                userMasterWriteJedis.setPassword(Constants.redisPswd);
