Java 类redis.clients.jedis.ShardedJedisPool 实例源码

项目:MonitorPlatform    文件:SharedRedisConfig.java   
@Bean(name="monitorJedisPool")
public ShardedJedisPool getJedisPool() {
    try {
        List<JedisShardInfo> shardList = new ArrayList<>();
        String hostStr = env.getProperty("spring.redis.shard.monitor.hostList");
        int timeOut = Integer.parseInt(env.getProperty("spring.redis.shard.monitor.timeOut"));
        if(!StringUtils.isEmpty(hostStr)){
            String[] hosts = hostStr.split(",");
            for(int i = 0; i < hosts.length; i++){
                String[] temp = hosts[i].split(":");
                JedisShardInfo info = new JedisShardInfo(temp[0], Integer.valueOf(temp[1]), timeOut);
                shardList.add(info);
            }
        }

        if(shardList.size() == 0){
            //无法加载redis
            throw new IOException();
        }
        return new ShardedJedisPool(getJedisPoolConfig(), shardList);
    } catch (Exception e) {
        throw new RuntimeException("无法加载资源文件!");
    }
}
项目:asura    文件:RedisServiceFactory.java   
@Override
public void afterPropertiesSet() throws Exception {
    final JedisPoolConfig config = JedisPoolConfigFactory.createJedisPoolConfig();

    final Set<JedisShardInfo> shardInfos = new HashSet<JedisShardInfo>();
    final HostInfo[] hostInfos = HostInfoFactory.split(hosts);
    for (final HostInfo hostInfo : hostInfos) {
        shardInfos.add(hostInfo.createJedisShardInfo());
    }
    if (redisService == null) {
        final ShardedJedisPool jedisPool = new ShardedJedisPool(config, new ArrayList<JedisShardInfo>(shardInfos));
        redisService = new RedisServiceImpl(jedisPool);
    }

    final RedisServiceProxy redisServiceProxy = new RedisServiceProxy();
    this.redisService = redisServiceProxy.bind(redisService);
}
项目:preliminary.demo    文件:RedisClient.java   
/** 
 * 初始化切片池 
 */ 
private void initialShardedPool() 
{ 
    // 池基本配置 
    JedisPoolConfig config = new JedisPoolConfig(); 
    config.setMaxActive(20); 
    config.setMaxIdle(5); 
    config.setMaxWait(1000l); 
    config.setTestOnBorrow(false); 
    // slave链接 
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); 
    shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); 

    // 构造池 
    shardedJedisPool = new ShardedJedisPool(config, shards); 
}
项目:pagecache-parent    文件:JedisManagerFactory.java   
/**
 * 
 * @return
 */
public static JedisManager createJedisManager() {

    Config conf = Config.newInstance();

    // 池基本配置
    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxIdle(conf.getInt("redis.maxIdle"));
    config.setMinIdle(conf.getInt("redis.minIdle"));
    config.setMaxWaitMillis(conf.getLong("redis.maxWaitMillis"));
    config.setTestOnBorrow(conf.getBoolean("redis.testOnBorrow"));
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    // slave链接
    shards.add(new JedisShardInfo(conf.getString("redis.slave.host"), conf
            .getInt("redis.slave.port"), conf.getInt("redis.timeout")));
    // master链接
    shards.add(new JedisShardInfo(conf.getString("redis.master.host"), conf
            .getInt("redis.master.port"), conf.getInt("redis.timeout")));

    // 构造池
    ShardedJedisPool shardedJedisPool = new ShardedJedisPool(config, shards);

    return new JedisManager(shardedJedisPool);
}
项目:redis-distributedLock    文件:JedisManagerFactory.java   
/**
 * 根据配置创建
 * 
 * @return
 */
private static JedisManager createJedisManager() {

    // 池基本配置
    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxIdle(Conf.getInt("redis.maxIdle"));
    config.setMinIdle(Conf.getInt("redis.minIdle"));
    config.setMaxWaitMillis(Conf.getLong("redis.maxWaitMillis"));
    config.setTestOnBorrow(Conf.getBoolean("redis.testOnBorrow"));
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    // 链接
    shards.add(new JedisShardInfo(Conf.getString("redis.host"), Conf.getInt("redis.port"), Conf
            .getInt("redis.timeout")));

    // 构造池
    ShardedJedisPool shardedJedisPool = new ShardedJedisPool(config, shards);

    return new JedisManager(shardedJedisPool);
}
项目:es-service-parent    文件:JedisManagerFactory.java   
/**
 * 根据配置创建
 * 
 * @return
 */
private static JedisManager createJedisManager() {

    // 池基本配置
    JedisPoolConfig config = new JedisPoolConfig();
    config.setMaxIdle(Conf.getInt("redis.maxIdle"));
    config.setMinIdle(Conf.getInt("redis.minIdle"));
    config.setMaxWaitMillis(Conf.getLong("redis.maxWaitMillis"));
    config.setTestOnBorrow(Conf.getBoolean("redis.testOnBorrow"));
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    // 链接
    shards.add(new JedisShardInfo(Conf.getString("redis.host"), Conf.getInt("redis.port"), Conf
            .getInt("redis.timeout")));

    // 构造池
    ShardedJedisPool shardedJedisPool = new ShardedJedisPool(config, shards);

    return new JedisManager(shardedJedisPool);
}
项目:nano-framework    文件:RedisClientPool.java   
public ShardedJedisPool appendJedis(final RedisConfig conf) {
    Assert.notNull(conf);
    Assert.hasLength(conf.getRedisType());

    if(conf.getCluster() == null || !conf.getCluster()) {
        if (!jedisPool.containsKey(conf.getRedisType())) {
            redisConfigs.put(conf.getRedisType(), conf);
            final ShardedJedisPool pool;
            jedisPool.put(conf.getRedisType(), pool = createJedisPool(conf));
            bindGlobal(conf);
            return pool;
        }

        return jedisPool.get(conf.getRedisType());
    }

    throw new RedisClientException("Can't append ShardedJedis, this is a redis cluster config");
}
项目:nano-framework    文件:RedisClientPool.java   
public ShardedJedis getJedis(final String poolName) {
    Assert.hasText(poolName);
    ShardedJedis shardedJedis = null;
    try {
        final ShardedJedisPool pool = jedisPool.get(poolName);
        if (pool != null) {
            shardedJedis = pool.getResource();
        }

        Assert.notNull(shardedJedis, "Not found ShardedJedis.");
        return shardedJedis;
    } catch (final Throwable e) {
        close(shardedJedis);
        throw new RedisClientException(e.getMessage(), e);
    }
}
项目:oxCore    文件:RedisShardedProvider.java   
public void create() {
    try {
        LOG.debug("Starting RedisShardedProvider ... configuration:" + redisConfiguration);

        JedisPoolConfig poolConfig = new JedisPoolConfig();
        poolConfig.setMaxTotal(1000);
        poolConfig.setMinIdle(2);

        pool = new ShardedJedisPool(poolConfig, shards(redisConfiguration.getServers()));

        testConnection();
        LOG.debug("RedisShardedProvider started.");
    } catch (Exception e) {
        LOG.error("Failed to start RedisShardedProvider.");
        throw new IllegalStateException("Error starting RedisShardedProvider", e);
    }
}
项目:craft-atom    文件:TestShardedRedis.java   
private void init() {
    redis1.slaveofnoone();
    redis2.slaveofnoone();
    redis3.slaveofnoone();
    List<Redis> shards = new ArrayList<Redis>(3);
    shards.add(redis1);
    shards.add(redis2);
    shards.add(redis3);
    shardedRedis = RedisFactory.newShardedRedis(shards);

    List<JedisShardInfo> shardinfos = new ArrayList<JedisShardInfo>();
    shardinfos.add(new JedisShardInfo(HOST, PORT1));
    shardinfos.add(new JedisShardInfo(HOST, PORT2));
    shardinfos.add(new JedisShardInfo(HOST, PORT3));
    shardedPool = new ShardedJedisPool(new JedisPoolConfig(), shardinfos);
}
项目:howsun-javaee-framework    文件:JedisShartClient.java   
/**
 * @param args
 */
public static void main(String[] args) {
    List<JedisShardInfo> list = new LinkedList<JedisShardInfo>();
    JedisShardInfo jedisShardInfo1 = new JedisShardInfo(ip1, port);
    jedisShardInfo1.setPassword(JedisConstant.password);
    list.add(jedisShardInfo1);
    JedisShardInfo jedisShardInfo2 = new JedisShardInfo(ip2, port);
    jedisShardInfo2.setPassword(JedisConstant.password);
    list.add(jedisShardInfo2);
    ShardedJedisPool pool = new ShardedJedisPool(config, list);
    for (int i = 0; i < 2000; i++) {
        ShardedJedis jedis = pool.getResource();
        String key = "howsun_" + i;
        //jedis.set(key, UUID.randomUUID().toString());
        System.out.println(key + "\t" + jedis.get(key) + "\t" + jedis.toString());
        pool.returnResource(jedis);
    }
}
项目:ddth-commons    文件:JedisUtils.java   
/**
 * Create a new {@link ShardedJedisPool}.
 * 
 * @param poolConfig
 *            format {@code host1:port1,host2:port2,...}, default Redis port is used if not
 *            specified
 * @param password
 * @param timeoutMs
 * @return
 */
public static ShardedJedisPool newShardedJedisPool(JedisPoolConfig poolConfig,
        String hostsAndPorts, String password, int timeoutMs) {
    List<JedisShardInfo> shards = new ArrayList<>();
    String[] hapList = hostsAndPorts.split("[,;\\s]+");
    for (String hostAndPort : hapList) {
        String[] tokens = hostAndPort.split(":");
        String host = tokens.length > 0 ? tokens[0] : Protocol.DEFAULT_HOST;
        int port = tokens.length > 1 ? Integer.parseInt(tokens[1]) : Protocol.DEFAULT_PORT;
        JedisShardInfo shardInfo = new JedisShardInfo(host, port, timeoutMs);
        shardInfo.setPassword(password);
        shards.add(shardInfo);
    }
    ShardedJedisPool jedisPool = new ShardedJedisPool(poolConfig, shards);
    return jedisPool;
}
项目:WiFiProbeAnalysis    文件:JedisPoolManager.java   
public static void setSharedJedisPool() {
        JedisPoolConfig config = new JedisPoolConfig();//Jedis池配置
        // 共享jedis池,用于集群
        List<JedisShardInfo> jedisShardInfos = new ArrayList<>();
        JedisShardInfo node01 = new JedisShardInfo("120.24.238.195", 6379);
//        JedisShardInfo node02 = new JedisShardInfo("120.25.162.32", 6379);
//        JedisShardInfo node03 = new JedisShardInfo("112.74.114.226", 6379);
        node01.setPassword("110110");
        jedisShardInfos.add(node01);
//        jedisShardInfos.add(node02);
//        jedisShardInfos.add(node03);
        pool = new ShardedJedisPool(config, jedisShardInfos);
        isSetup = true;
    }
项目:JRediClients    文件:ShardedJedisPoolTest.java   
@Test
public void checkConnections() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "bar");
  assertEquals("bar", jedis.get("foo"));
  pool.returnResource(jedis);
  pool.destroy();
}
项目:JRediClients    文件:ShardedJedisPoolTest.java   
@Test
public void checkCloseableConnections() throws Exception {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "bar");
  assertEquals("bar", jedis.get("foo"));
  pool.returnResource(jedis);
  pool.close();
  assertTrue(pool.isClosed());
}
项目:JRediClients    文件:ShardedJedisPoolTest.java   
@Test
public void checkConnectionWithDefaultPort() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "bar");
  assertEquals("bar", jedis.get("foo"));
  pool.returnResource(jedis);
  pool.destroy();
}
项目:JRediClients    文件:ShardedJedisPoolTest.java   
@Test
public void checkJedisIsReusedWhenReturned() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "0");
  pool.returnResource(jedis);

  jedis = pool.getResource();
  jedis.incr("foo");
  pool.returnResource(jedis);
  pool.destroy();
}
项目:JRediClients    文件:ShardedJedisPoolTest.java   
@Test
public void checkPoolRepairedWhenJedisIsBroken() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.disconnect();
  pool.returnBrokenResource(jedis);

  jedis = pool.getResource();
  jedis.incr("foo");
  pool.returnResource(jedis);
  pool.destroy();
}
项目:JRediClients    文件:ShardedJedisPoolTest.java   
@Test(expected = JedisException.class)
public void checkPoolOverflow() {
  GenericObjectPoolConfig config = new GenericObjectPoolConfig();
  config.setMaxTotal(1);
  config.setBlockWhenExhausted(false);

  ShardedJedisPool pool = new ShardedJedisPool(config, shards);

  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "0");

  ShardedJedis newJedis = pool.getResource();
  newJedis.incr("foo");
}
项目:JRediClients    文件:ShardedJedisPoolTest.java   
@Test
public void shouldNotShareInstances() {
  GenericObjectPoolConfig config = new GenericObjectPoolConfig();
  config.setMaxTotal(2);

  ShardedJedisPool pool = new ShardedJedisPool(config, shards);

  ShardedJedis j1 = pool.getResource();
  ShardedJedis j2 = pool.getResource();

  assertNotSame(j1.getShard("foo"), j2.getShard("foo"));
}
项目:JRediClients    文件:ShardedJedisPoolTest.java   
@Test
public void checkFailedJedisServer() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.incr("foo");
  pool.returnResource(jedis);
  pool.destroy();
}
项目:hall    文件:StartGame.java   
public static void main(String[] args) {
    JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
    jedisPoolConfig.setMaxTotal(50000);
    jedisPoolConfig.setMaxIdle(20000);
    jedisPoolConfig.setMaxWaitMillis(3000);
    jedisPoolConfig.setTestOnBorrow(true);
    jedisPoolConfig.setTestOnReturn(true);

    List<JedisShardInfo> shards = new ArrayList<>();
    shards.add(new JedisShardInfo("127.0.0.1", 6379, 300));
    ShardedJedisPool shardedJedisPool = new ShardedJedisPool(jedisPoolConfig, shards);
    RedisService redisService = new RedisService(shardedJedisPool);
    new Thread(new HallTcpService(redisService)).start();
    new Thread(new HallNoticeService(redisService)).start();
}
项目:iBase4J    文件:JedisTemplate.java   
private static ShardedJedis getJedis() {
    if (shardedJedisPool == null) {
        synchronized (EXPIRE) {
            if (shardedJedisPool == null) {
                WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
                shardedJedisPool = wac.getBean(ShardedJedisPool.class);
            }
        }
    }
    return shardedJedisPool.getResource();
}
项目:asura    文件:RedisCacheClient.java   
public void init() {

        try {
            String[] hosts = servers.trim().split("\\|");

            List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();

            for (String host : hosts) {
                String[] ss = host.split(":");
                //升级 redis  构造变化
                JedisShardInfo shard = new JedisShardInfo(ss[0], Integer.parseInt(ss[1]), DEFAULT_TIMEOUT, DEFAULT_TIMEOUT, 1);
                shards.add(shard);
            }

            JedisPoolConfig config = new JedisPoolConfig();
            config.setMaxIdle(MAX_ACTIVE);
            config.setMinIdle(MAX_IDLE);
            config.setMaxWaitMillis(MAX_WAIT);
            config.setMaxTotal(MAX_TOTAL);

            pool = new ShardedJedisPool(config, shards, Hashing.MURMUR_HASH);
        } catch (NumberFormatException e) {
            System.out.println("redis客户端初始化连接异常!!!!!!!!!  链接参数:" + servers
                    + " " + DEFAULT_TIMEOUT + " " + app);
            logger.error("redis:{},exception:{}.", servers + " "
                    + DEFAULT_TIMEOUT + " " + app, e.getMessage());
        }
    }
项目:asura    文件:RedisShardedCacheClient.java   
@Override
public Pool<ShardedJedis> initPool() throws Exception {
    if (Check.isNullOrEmpty(getServers())) {
        throw new IllegalArgumentException("未指定redis服务器地址");
    }
    String[] hosts = getServers().trim().split("\\|");
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    for (String host : hosts) {
        String[] ss = host.split(":");
        //升级 redis  构造变化
        JedisShardInfo shard = new JedisShardInfo(ss[0], Integer.parseInt(ss[1]), connectTimeout, socketTimeout, 1);
        shards.add(shard);
    }
    return new ShardedJedisPool(getPoolConfig(), shards, Hashing.MURMUR_HASH);
}
项目:azeroth    文件:JedisShardProvider.java   
public JedisShardProvider(String groupName, JedisPoolConfig jedisPoolConfig, String[] servers,
                          int timeout) {
    super();
    this.groupName = groupName;
    List<JedisShardInfo> shards = buildShardInfos(servers, timeout);
    jedisPool = new ShardedJedisPool(jedisPoolConfig, shards);
}
项目:jaf-examples    文件:ClusterBaseTests.java   
@BeforeClass
public static void initialize() {
    List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
    JedisShardInfo shard1 = new JedisShardInfo(TestConfig.HOST_NAME, 16379);
    shards.add(shard1);

    JedisShardInfo shard2 = new JedisShardInfo(TestConfig.HOST_NAME, 16479);
    shards.add(shard2);

    JedisShardInfo shard3 = new JedisShardInfo(TestConfig.HOST_NAME, 16579);
    shards.add(shard3);

    jedisPool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
}
项目:ipwatch-java    文件:ShardedJedisCache.java   
/**
 * redis分片缓存
 * @param shardedJedisPool 分片池
 * @param reConnectPercent 百分比
 * @param reConnectTimeout 重连毫秒值
 */
public ShardedJedisCache(ShardedJedisPool shardedJedisPool, int reConnectPercent, int reConnectTimeout) {
    super();
    this.shardedJedis = shardedJedisPool.getResource();
    this.reConnectPercent = reConnectPercent;
    this.reConnectTimeout = reConnectTimeout;
}
项目:giiwa    文件:RedisCache.java   
/**
 * Inits the.
 *
 * @param conf
 *          the conf
 * @return the i cache system
 */
public static ICacheSystem create(String server) {

  RedisCache r = new RedisCache();
  r.url = server.substring(Cache.REDIS.length());

  String[] ss = r.url.split(":");
  String host = ss[0];
  int port = 6379;
  if (ss.length > 1) {
    port = X.toInt(ss[1], 0);
  }

  JedisPoolConfig config = new JedisPoolConfig();
  config.setMaxTotal(20);
  config.setMaxIdle(5);
  config.setMaxWaitMillis(1000l);
  config.setTestOnBorrow(false);

  List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
  shards.add(new JedisShardInfo(host, port, "master"));

  r.shardedJedisPool = new ShardedJedisPool(config, shards);
  r.jedis = r.shardedJedisPool.getResource();

  return r;
}
项目:cachecloud    文件:ShardedJedisPoolTest.java   
@Test
public void checkConnections() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "bar");
  assertEquals("bar", jedis.get("foo"));
  jedis.close();
  pool.destroy();
}
项目:cachecloud    文件:ShardedJedisPoolTest.java   
@Test
public void checkCloseableConnections() throws Exception {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "bar");
  assertEquals("bar", jedis.get("foo"));
  jedis.close();
  pool.close();
  assertTrue(pool.isClosed());
}
项目:cachecloud    文件:ShardedJedisPoolTest.java   
@Test
public void checkConnectionWithDefaultPort() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "bar");
  assertEquals("bar", jedis.get("foo"));
  jedis.close();
  pool.destroy();
}
项目:cachecloud    文件:ShardedJedisPoolTest.java   
@Test
public void checkJedisIsReusedWhenReturned() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.set("foo", "0");
  jedis.close();

  jedis = pool.getResource();
  jedis.incr("foo");
  jedis.close();
  pool.destroy();
}
项目:cachecloud    文件:ShardedJedisPoolTest.java   
@Test
public void checkPoolRepairedWhenJedisIsBroken() {
  ShardedJedisPool pool = new ShardedJedisPool(new GenericObjectPoolConfig(), shards);
  ShardedJedis jedis = pool.getResource();
  jedis.disconnect();
  jedis.close();

  jedis = pool.getResource();
  jedis.incr("foo");
  jedis.close();
  pool.destroy();
}