记一次jedis连接异常

博主在新工作中遇到Jedis连接Redis时的Connection refused错误,尝试了多种网络配置和端口修改未果。最终发现是由于公司环境中Redis配置了requirepass,即密码验证导致的问题。通过对比配置文件,解决了连接问题。同时提到有同事同样修改requirepass但无效,可能有其他因素。此经验分享旨在帮助遇到类似问题的人。
摘要由CSDN通过智能技术生成

今天第一天入职,领导要求配置环境,然后一上午就在折腾这么一个问题:
ERROR c.apache.cache.service.impl.redis.RedisCoreFactory:56 - Could not get a resource from the pool,redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectException: Connection refused: connect

而且之前自学jedis的时候也被这个问题弄的焦头烂额,于是乎用尽了网上的各种方法。
配置文件中注释bind 127.0.0.1,关闭保护模式
完全没有效果
修改连接池配置
公司用的开发平台,应该不存在连接池问题
检查端口号
虽然确实不对应,但是修改之后还是没用

于是找公司里的其他人要了他们的redis来替代自用的,成了。

虽然是成了,可是百思不得其解:为啥呢?
于是拿了两个redis的配置文件比较,比较出问题了


redis默认配置文件(与公司版本的对比),右侧的红线说明两文件此处不一致

自学jedis的时候是没有配置这个验证的,而公司环境下的这个requirepass与默认的不一样,自然会被拒绝连接

再深入的问题还有待了解,而且这个可能性我在网上还没查到过,以此记录下来,或许能帮到其他人。

PS:和我一起办入职的同事说他改过这个requirepass了,依然不好使。。。我也不知道为啥。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个简单的 Jedis 连接池的实现,使用 Scala 语言编写: ```scala import redis.clients.jedis.JedisPool import redis.clients.jedis.JedisPoolConfig object JedisPoolManager { private val config = new JedisPoolConfig() config.setMaxTotal(10) // 最大连接数 config.setMaxIdle(5) // 最大空闲连接数 config.setMinIdle(1) // 最小空闲连接数 config.setTestOnBorrow(true) // 取出连接时测试是否可用 config.setTestOnReturn(true) // 归还连接时测试是否可用 private val pool = new JedisPool(config, "localhost", 6379) def getResource = pool.getResource def returnResource(jedis: Jedis) = { if (jedis != null) { jedis.close() } } } ``` 解释: 1. 首先创建一个 `JedisPoolConfig` 对象,用于配置连接池的参数,如最大连接数、最大空闲连接数、最小空闲连接数等。 2. 然后创建一个 `JedisPool` 对象,传入上面创建的 `JedisPoolConfig` 对象和 Redis 服务器的地址和端口号。 3. 定义 `getResource` 方法,用于从连接池中获取一个 Jedis 实例。 4. 定义 `returnResource` 方法,用于归还 Jedis 实例到连接池中。 5. 在 `returnResource` 方法中,使用 `jedis.close()` 方法关闭 Jedis 实例,将其归还到连接池中。注意,如果 Jedis 实例为 null,则不执行任何操作。 使用示例: ```scala import redis.clients.jedis.Jedis object Main extends App { val jedis: Jedis = JedisPoolManager.getResource jedis.set("foo", "bar") val result = jedis.get("foo") println(result) JedisPoolManager.returnResource(jedis) } ``` 在上面的示例中,首先通过 `JedisPoolManager.getResource` 方法获取一个 Jedis 实例,然后可以使用该实例进行 Redis 操作。完成操作后,通过 `JedisPoolManager.returnResource` 方法将 Jedis 实例归还到连接池中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值