欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot 啟動報錯Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379問題的解決方案

 更新時間:2024年10月09日 11:51:04   作者:有來技術  
這篇文章主要介紹了SpringBoot 啟動報錯Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379問題的解決方案,文中通過圖文結(jié)合的方式給大家講解的非常詳細,對大家解決問題有一定的幫助,需要的朋友可以參考下

問題描述

使用開源項目 youlai-boot 中,使用默認線上配置沒問題的,但將 Redis 的修改為本地的環(huán)境出現(xiàn)無法連接的錯誤

啟動項目報錯關鍵信息:

org.redisson.client.RedisConnectionException: Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379

稍微完整的錯誤信息:

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'securityConfig' defined in file [D:\Project\Work\youlai-boot\target\classes\com\youlai\system\config\SecurityConfig.class]: Unsatisfied dependency expressed through constructor parameter 2: Error creating bean with name 'redisTemplate' defined in class path resource [com/youlai/system/config/RedisConfig.class]: Unsatisfied dependency expressed through method 'redisTemplate' parameter 0: Error creating bean with name 'redissonConnectionFactory' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Unsatisfied dependency expressed through method 'redissonConnectionFactory' parameter 0: Error creating bean with name 'redisson' defined in class path resource [org/redisson/spring/starter/RedissonAutoConfigurationV2.class]: Failed to instantiate [org.redisson.api.RedissonClient]: Factory method 'redisson' threw exception with message: java.util.concurrent.ExecutionException: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379

錯誤截圖:

image-20240529175344056

原因分析

再看下修改前后的對比圖

線上 Redis 服務配置了密碼,而本地 Redis 服務沒有密碼,因此我們理所當然地將 password 的值留空。然而,這正是問題的根本原因,因為空值仍會被解析為一個空字符串,而不是被忽略。

如果只是這樣說是沒有說服力的,接下來我將本著“源碼面前無秘密”的原則,深入揭示問題的本質(zhì)。

源碼分析

假設本地的 Redis 未配置密碼,SpringBoot 的 Redis 連接配置如下:

spring:
  data:
    redis:
      database: 0
      host: 127.0.0.1
      port: 6379
      password:

MasterSlaveConnectionManager#createClient 根據(jù)配置創(chuàng)建客戶端,其中配置的 password 是空字符串而不是null。

BaseConnectionHandler#channelActive 方法根據(jù)配置進行 Redis 客戶端連接初始化。由于配置中的 password 被解析成空字符串而非 null,因此嘗試使用空字符串作為密碼連接 Redis,但由于 Redis 服務未設置密碼,連接失敗。

image-20240529205521031

解決方案

由上可知,如果將配置的 password 值設置為空,則客戶端在連接時會使用空字符串作為密碼進行認證。由于服務端未設置密碼,因此連接失敗。

解決方法其實很簡單,如果 Redis 服務未設置密碼,需要將 password 注釋或刪除,而不是設置為空字符串。

spring:
  data:
    redis:
      database: 0
      host: 127.0.0.1
      port: 6379
   	  # 如果 Redis 服務未設置密碼,需要將 password 刪除或注釋,而不是設置為空字符串
      # password:

再次調(diào)試可以看到 password 為 null ,直接跳過密碼認證,直接返回已完成的 CompletableFuture 對象

以上就是SpringBoot 啟動報錯Unable to connect to Redis server: 127.0.0.1/127.0.0.1:6379問題的解決方案的詳細內(nèi)容,更多關于SpringBoot 啟動報錯Unable connect Redis的資料請關注腳本之家其它相關文章!

相關文章

  • Springboot動態(tài)切換數(shù)據(jù)源的具體實現(xiàn)與原理分析

    Springboot動態(tài)切換數(shù)據(jù)源的具體實現(xiàn)與原理分析

    目前有個需求,需要使用不同的數(shù)據(jù)源,例如某業(yè)務要用A數(shù)據(jù)源,另一個業(yè)務要用B數(shù)據(jù)源,所以下面這篇文章主要給大家介紹了關于Springboot動態(tài)切換數(shù)據(jù)源的具體實現(xiàn)與原理分析,需要的朋友可以參考下
    2021-12-12
  • java?使用readLine()?亂碼的解決

    java?使用readLine()?亂碼的解決

    這篇文章主要介紹了java使用readLine()亂碼的解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Mybatis中自定義實例化SqlSessionFactoryBean問題

    Mybatis中自定義實例化SqlSessionFactoryBean問題

    這篇文章主要介紹了Mybatis中自定義實例化SqlSessionFactoryBean問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • java中如何對Map的key順序排序

    java中如何對Map的key順序排序

    大家都知道Map排序的方式有很多種,下面這篇文章主要給大家介紹了關于java中如何對Map的key順序排序的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • MyBatis動態(tài)sql查詢及多參數(shù)查詢方式

    MyBatis動態(tài)sql查詢及多參數(shù)查詢方式

    這篇文章主要介紹了MyBatis動態(tài)sql查詢及多參數(shù)查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java基于JNDI 實現(xiàn)讀寫分離的示例代碼

    Java基于JNDI 實現(xiàn)讀寫分離的示例代碼

    本文主要介紹了Java基于JNDI 實現(xiàn)讀寫分離的示例代碼,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • java實現(xiàn)Z字形掃描程序

    java實現(xiàn)Z字形掃描程序

    這篇文章主要為大家詳細介紹了java實現(xiàn)Z字形掃描程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 詳解JAVA類加載機制

    詳解JAVA類加載機制

    這篇文章主要介紹了JAVA類加載機制的相關知識,文中代碼非常詳細,供大家參考和學習,感興趣的朋友可以了解下
    2020-06-06
  • 使用Spring?Retry實現(xiàn)業(yè)務異常重試

    使用Spring?Retry實現(xiàn)業(yè)務異常重試

    在系統(tǒng)中經(jīng)常遇到業(yè)務重試的邏輯,比如三方接口調(diào)用,timeout重試三遍,異常處理重試的兜底邏輯等,本文給大家介紹一下如何使用Spring?Retry優(yōu)雅的實現(xiàn)業(yè)務異常重試,需要的朋友可以參考下
    2024-01-01
  • 淺談java中類名.class, class.forName(), getClass()的區(qū)別

    淺談java中類名.class, class.forName(), getClass()的區(qū)別

    下面小編就為大家?guī)硪黄獪\談java中類名.class, class.forName(), getClass()的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05

最新評論