redis.clients.jedis.JedisCluster.getClusterNodes()方法的使用及代码示例

x33g5p2x  于2022-01-21 转载在 其他  
字(11.1k)|赞(0)|评价(0)|浏览(1050)

本文整理了Java中redis.clients.jedis.JedisCluster.getClusterNodes()方法的一些代码示例,展示了JedisCluster.getClusterNodes()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。JedisCluster.getClusterNodes()方法的具体详情如下:
包路径:redis.clients.jedis.JedisCluster
类名称:JedisCluster
方法名:getClusterNodes

JedisCluster.getClusterNodes介绍

暂无

代码示例

代码示例来源:origin: spring-projects/spring-data-redis

private JedisPool getResourcePoolForSpecificNode(RedisClusterNode node) {
  Map<String, JedisPool> clusterNodes = cluster.getClusterNodes();
  if (clusterNodes.containsKey(node.asString())) {
    return clusterNodes.get(node.asString());
  }
  return null;
}

代码示例来源:origin: spring-projects/spring-data-redis

@Override
  public ClusterTopology getTopology() {
    if (cached != null && time + 100 > System.currentTimeMillis()) {
      return cached;
    }
    Map<String, Exception> errors = new LinkedHashMap<>();
    List<Entry<String, JedisPool>> list = new ArrayList<>(cluster.getClusterNodes().entrySet());
    Collections.shuffle(list);
    for (Entry<String, JedisPool> entry : list) {
      try (Jedis jedis = entry.getValue().getResource()) {
        time = System.currentTimeMillis();
        Set<RedisClusterNode> nodes = Converters.toSetOfRedisClusterNodes(jedis.clusterNodes());
        synchronized (lock) {
          cached = new ClusterTopology(nodes);
        }
        return cached;
      } catch (Exception ex) {
        errors.put(entry.getKey(), ex);
      }
    }
    StringBuilder sb = new StringBuilder();
    for (Entry<String, Exception> entry : errors.entrySet()) {
      sb.append(String.format("\r\n\t- %s failed: %s", entry.getKey(), entry.getValue().getMessage()));
    }
    throw new ClusterStateFailureException(
        "Could not retrieve cluster information. CLUSTER NODES returned with error." + sb.toString());
  }
}

代码示例来源:origin: alexxiyang/shiro-redis

@Override
public Set<byte[]> keys(byte[] pattern) {
  Set<byte[]> keys = new HashSet<byte[]>();
  Map<String, JedisPool> clusterNodes = getJedisCluster().getClusterNodes();
  Iterator<Map.Entry<String, JedisPool>> nodeIt = clusterNodes.entrySet().iterator();
  while (nodeIt.hasNext()) {
    Map.Entry<String, JedisPool> node = nodeIt.next();
    Set<byte[]> nodeKeys = getKeysFromClusterNode(node.getValue(), pattern);
    if (nodeKeys == null || nodeKeys.size() == 0) {
      continue;
    }
    keys.addAll(nodeKeys);
  }
  return keys;
}

代码示例来源:origin: alexxiyang/shiro-redis

@Override
public Long dbSize(byte[] pattern) {
  Long dbSize = 0L;
  Map<String, JedisPool> clusterNodes = getJedisCluster().getClusterNodes();
  Iterator<Map.Entry<String, JedisPool>> nodeIt = clusterNodes.entrySet().iterator();
  while (nodeIt.hasNext()) {
    Map.Entry<String, JedisPool> node = nodeIt.next();
    long nodeDbSize = getDbSizeFromClusterNode(node.getValue(), pattern);
    if (nodeDbSize == 0L) {
      continue;
    }
    dbSize += nodeDbSize;
  }
  return dbSize;
}

代码示例来源:origin: salesforce/Argus

@Override
public void clear() {
  Iterator<JedisPool> poolIterator = _jedisClusterClient.getClusterNodes().values().iterator();
  while (poolIterator.hasNext()) {
    JedisPool pool = poolIterator.next();
    Jedis jedis = pool.getResource();
    try {
      jedis.flushAll();
    } catch (Exception ex) {
      _logger.error("Exception in cache service: {} ", ex.getMessage());
    } finally {
      jedis.close();
    }
  }
}

代码示例来源:origin: org.crazycake/shiro-redis

@Override
public Set<byte[]> keys(byte[] pattern) {
  Set<byte[]> keys = new HashSet<byte[]>();
  Map<String, JedisPool> clusterNodes = getJedisCluster().getClusterNodes();
  Iterator<Map.Entry<String, JedisPool>> nodeIt = clusterNodes.entrySet().iterator();
  while (nodeIt.hasNext()) {
    Map.Entry<String, JedisPool> node = nodeIt.next();
    Set<byte[]> nodeKeys = getKeysFromClusterNode(node.getValue(), pattern);
    if (nodeKeys == null || nodeKeys.size() == 0) {
      continue;
    }
    keys.addAll(nodeKeys);
  }
  return keys;
}

代码示例来源:origin: com.salesforce.argus/argus-core

@Override
public void clear() {
  Iterator<JedisPool> poolIterator = _jedisClusterClient.getClusterNodes().values().iterator();
  while (poolIterator.hasNext()) {
    JedisPool pool = poolIterator.next();
    Jedis jedis = pool.getResource();
    try {
      jedis.flushAll();
    } catch (Exception ex) {
      _logger.error("Exception in cache service: {} ", ex.getMessage());
    } finally {
      jedis.close();
    }
  }
}

代码示例来源:origin: org.nutz/nutz-integration-jedis

@Deprecated @Override
public Set<String> keys(String pattern) {
  HashSet<String> keys = new HashSet<String>();
  for (JedisPool pool : jedisCluster.getClusterNodes().values()) {
    Jedis jedis = null;
    try {
      jedis = pool.getResource();
      keys.addAll(jedis.keys(pattern));
    } finally {
      if (jedis != null)
        jedis.close();
    }
  }
  return keys;
}

代码示例来源:origin: org.springframework.data/spring-data-redis

private JedisPool getResourcePoolForSpecificNode(RedisClusterNode node) {
  Map<String, JedisPool> clusterNodes = cluster.getClusterNodes();
  if (clusterNodes.containsKey(node.asString())) {
    return clusterNodes.get(node.asString());
  }
  return null;
}

代码示例来源:origin: org.nutz/nutz-integration-jedis

@Deprecated @Override
public Set<byte[]> keys(byte[] pattern) {
  HashSet<byte[]> keys = new HashSet<byte[]>();
  for (JedisPool pool : jedisCluster.getClusterNodes().values()) {
    Jedis jedis = null;
    try {
      jedis = pool.getResource();
      keys.addAll(jedis.keys(pattern));
    } finally {
      if (jedis != null)
        jedis.close();
    }
  }
  return keys;
}

代码示例来源:origin: salesforce/Argus

@Override
public Set<String> getKeysByPattern(String pattern) {
  Set<String> keysMatched = new TreeSet<String>();
  Iterator<JedisPool> poolIterator = _jedisClusterClient.getClusterNodes().values().iterator();
  while (poolIterator.hasNext()) {
    JedisPool pool = poolIterator.next();
    Jedis jedis = pool.getResource();
    try {
      keysMatched.addAll(jedis.keys(pattern));
    } catch (Exception ex) {
      _logger.error("Exception in cache service: {} ", ex.getMessage());
    } finally {
      jedis.close();
    }
  }
  return keysMatched;
}

代码示例来源:origin: com.salesforce.argus/argus-core

@Override
public Set<String> getKeysByPattern(String pattern) {
  Set<String> keysMatched = new TreeSet<String>();
  Iterator<JedisPool> poolIterator = _jedisClusterClient.getClusterNodes().values().iterator();
  while (poolIterator.hasNext()) {
    JedisPool pool = poolIterator.next();
    Jedis jedis = pool.getResource();
    try {
      keysMatched.addAll(jedis.keys(pattern));
    } catch (Exception ex) {
      _logger.error("Exception in cache service: {} ", ex.getMessage());
    } finally {
      jedis.close();
    }
  }
  return keysMatched;
}

代码示例来源:origin: org.crazycake/shiro-redis

@Override
public Long dbSize(byte[] pattern) {
  Long dbSize = 0L;
  Map<String, JedisPool> clusterNodes = getJedisCluster().getClusterNodes();
  Iterator<Map.Entry<String, JedisPool>> nodeIt = clusterNodes.entrySet().iterator();
  while (nodeIt.hasNext()) {
    Map.Entry<String, JedisPool> node = nodeIt.next();
    long nodeDbSize = getDbSizeFromClusterNode(node.getValue(), pattern);
    if (nodeDbSize == 0L) {
      continue;
    }
    dbSize += nodeDbSize;
  }
  return dbSize;
}

代码示例来源:origin: apache/servicemix-bundles

private JedisPool getResourcePoolForSpecificNode(RedisClusterNode node) {
  Map<String, JedisPool> clusterNodes = cluster.getClusterNodes();
  if (clusterNodes.containsKey(node.asString())) {
    return clusterNodes.get(node.asString());
  }
  return null;
}

代码示例来源:origin: kingston-csj/jforgame

private TreeSet<String> keys(String pattern){
  TreeSet<String> keys = new TreeSet<>();
  //获取所有的节点
  Map<String, JedisPool> clusterNodes = cluster.getClusterNodes();
  //遍历节点 获取所有符合条件的KEY
  for (String k : clusterNodes.keySet()) {
    JedisPool jp = clusterNodes.get(k);
    Jedis connection = jp.getResource();
    try {
      keys.addAll(connection.keys(pattern));
    } catch(Exception e) {
    } finally{
      connection.close();//用完一定要close这个链接!!!
    }
  }
  return keys;
}

代码示例来源:origin: daijiejay/daijie

@Override
public void flushDB() throws Exception {
  logger.debug("Start flushDb keys...");
  Map<String, JedisPool> clusterNodes = jedisCluster.getClusterNodes();
  for(String k : clusterNodes.keySet()){
    logger.debug("delete keys from: {}", k);
    JedisPool jp = clusterNodes.get(k);
    Jedis connection = jp.getResource();
    try {
      connection.flushDB();
    } catch(Exception e){
      logger.error("Getting keys error: {}", e);
    } finally{
      logger.debug("Connection closed.");
      connection.close();//用完一定要close这个链接!!!
    }
  }
  logger.debug("flushDB");
}

代码示例来源:origin: daijiejay/daijie

@Override
public TreeSet<String> keys(String pattern) throws Exception {
  logger.debug("Start getting keys...");
  TreeSet<String> keys = new TreeSet<String>();
  Map<String, JedisPool> clusterNodes = jedisCluster.getClusterNodes();
  for(String k : clusterNodes.keySet()){
    logger.debug("Getting keys from: {}", k);
    JedisPool jp = clusterNodes.get(k);
    Jedis connection = jp.getResource();
    try {
      Set<String> set = connection.keys(pattern);
      Iterator<?> it = set.iterator();
      while (it.hasNext()) {
        keys.add((String) it.next());
      }
    } catch(Exception e){
      logger.error("Getting keys error: {}", e);
    } finally{
      logger.debug("Connection closed.");
      connection.close();//用完一定要close这个链接!!!
    }
  }
  logger.debug("Keys gotten!");
  return keys;
}

代码示例来源:origin: yangfuhai/jboot

/**
 * 查找所有符合给定模式 pattern 的 key 。
 * KEYS * 匹配数据库中所有 key 。
 * KEYS h?llo 匹配 hello , hallo 和 hxllo 等。
 * KEYS h*llo 匹配 hllo 和 heeeeello 等。
 * KEYS h[ae]llo 匹配 hello 和 hallo ,但不匹配 hillo 。
 * 特殊符号用 \ 隔开
 */
public Set<String> keys(String pattern) {
  HashSet<String> keys = new HashSet<>();
  Map<String, JedisPool> clusterNodes = jedisCluster.getClusterNodes();
  for (String k : clusterNodes.keySet()) {
    JedisPool jp = clusterNodes.get(k);
    Jedis jedis = jp.getResource();
    try {
      keys.addAll(jedis.keys(pattern));
    } catch (Exception e) {
      LOG.error(e.toString(), e);
    } finally {
      jedis.close(); //用完一定要close这个链接!!!
    }
  }
  return keys;
}

代码示例来源:origin: org.springframework.data/spring-data-redis

@Override
  public ClusterTopology getTopology() {
    if (cached != null && time + 100 > System.currentTimeMillis()) {
      return cached;
    }
    Map<String, Exception> errors = new LinkedHashMap<>();
    List<Entry<String, JedisPool>> list = new ArrayList<>(cluster.getClusterNodes().entrySet());
    Collections.shuffle(list);
    for (Entry<String, JedisPool> entry : list) {
      try (Jedis jedis = entry.getValue().getResource()) {
        time = System.currentTimeMillis();
        Set<RedisClusterNode> nodes = Converters.toSetOfRedisClusterNodes(jedis.clusterNodes());
        synchronized (lock) {
          cached = new ClusterTopology(nodes);
        }
        return cached;
      } catch (Exception ex) {
        errors.put(entry.getKey(), ex);
      }
    }
    StringBuilder sb = new StringBuilder();
    for (Entry<String, Exception> entry : errors.entrySet()) {
      sb.append(String.format("\r\n\t- %s failed: %s", entry.getKey(), entry.getValue().getMessage()));
    }
    throw new ClusterStateFailureException(
        "Could not retrieve cluster information. CLUSTER NODES returned with error." + sb.toString());
  }
}

代码示例来源:origin: apache/servicemix-bundles

@Override
  public ClusterTopology getTopology() {
    if (cached != null && time + 100 > System.currentTimeMillis()) {
      return cached;
    }
    Map<String, Exception> errors = new LinkedHashMap<>();
    List<Entry<String, JedisPool>> list = new ArrayList<>(cluster.getClusterNodes().entrySet());
    Collections.shuffle(list);
    for (Entry<String, JedisPool> entry : list) {
      try (Jedis jedis = entry.getValue().getResource()) {
        time = System.currentTimeMillis();
        Set<RedisClusterNode> nodes = Converters.toSetOfRedisClusterNodes(jedis.clusterNodes());
        synchronized (lock) {
          cached = new ClusterTopology(nodes);
        }
        return cached;
      } catch (Exception ex) {
        errors.put(entry.getKey(), ex);
      }
    }
    StringBuilder sb = new StringBuilder();
    for (Entry<String, Exception> entry : errors.entrySet()) {
      sb.append(String.format("\r\n\t- %s failed: %s", entry.getKey(), entry.getValue().getMessage()));
    }
    throw new ClusterStateFailureException(
        "Could not retrieve cluster information. CLUSTER NODES returned with error." + sb.toString());
  }
}

相关文章

微信公众号

最新文章

更多

JedisCluster类方法