巴拉巴拉
小魔仙

ShardedJedisPool 选择数据库

ShardedJedisPool的构造参数中
List<JedisShardInfo> shards
是用来连接多个redis分片信息的, 这个信息里面是可以配置数据库的
但是 JedisShardInfo 的构造方式很少, 并且没有开放setDb
在jedis源码中

  public JedisShardInfo(String host) {
    super(Sharded.DEFAULT_WEIGHT);
    URI uri = URI.create(host);
    if (JedisURIHelper.isValid(uri)) {
      this.host = uri.getHost();
      this.port = uri.getPort();
      this.password = JedisURIHelper.getPassword(uri);
      this.db = JedisURIHelper.getDBIndex(uri);
    } else {
      this.host = host;
      this.port = Protocol.DEFAULT_PORT;
    }
  }

    public JedisShardInfo(URI uri) {
    super(Sharded.DEFAULT_WEIGHT);
    if (!JedisURIHelper.isValid(uri)) {
      throw new InvalidURIException(String.format(
        "Cannot open Redis connection due invalid URI. %s", uri.toString()));
    }

    this.host = uri.getHost();
    this.port = uri.getPort();
    this.password = JedisURIHelper.getPassword(uri);
    this.db = JedisURIHelper.getDBIndex(uri);
  }

只有public JedisShardInfo(URI uri)public JedisShardInfo(String host)两个构造方式是支持设置数据库的
其实 StringURI 两种方式是一致的
java.net.URI的api看了一圈
URI.create(String uri)中的字符串可以设置为

# redis 任意填写, 只是为了符合URI的标准
# 123456 是密码, 注意在密码的前面有一个冒号 ':'
# 127.0.0.0 是redis服务器的地址
# 6379 redis服务器的端口
# 11 选择连接的redis的数据库
reids://:123456@127.0.0.1:6379/11
赞(1) 打赏
如果文章对你有帮助,欢迎你来评价反馈。AgainFly » ShardedJedisPool 选择数据库

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  • Q Q(选填)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏