package netty.cookbook.common.redis; import java.util.ArrayList; import java.util.List; import redis.clients.jedis.JedisShardInfo; import redis.clients.jedis.ShardedJedisPool; public class RedisInfo { public static final String LOCALHOST_STR = "localhost"; private String host; private int port; private String auth; private ShardedJedisPool shardedJedisPool; protected void initThePool(){ List<JedisShardInfo> shardInfos = new ArrayList<JedisShardInfo>(1); shardInfos.add(new JedisShardInfo(getHost(), getPort(), 0)); shardedJedisPool = new ShardedJedisPool(RedisConnectionPoolConfig.getJedisPoolConfigInstance(), shardInfos); } public RedisInfo(String host, int port) { this.host = host; this.port = port; initThePool(); } public RedisInfo(String host, int port,String auth) { this.host = host; this.port = port; this.auth = auth; initThePool(); } public String getHost() { return host; } public int getPort() { return port; } public String getAuth() { return auth; } @Override public boolean equals(Object obj) { if (obj instanceof RedisInfo) { RedisInfo hp = (RedisInfo) obj; String thisHost = convertHost(host); String hpHost = convertHost(hp.host); return port == hp.port && thisHost.equals(hpHost); } return false; } public ShardedJedisPool getShardedJedisPool() { return shardedJedisPool; } @Override public String toString() { return host + ":" + port; } private String convertHost(String host) { if (host.equals("127.0.0.1")) return LOCALHOST_STR; else if (host.equals("::1")) return LOCALHOST_STR; return host; } }