Cannot get Jedis connection,Could not get a resource from the pool,DENIED Redis is running in protec
阿新 • • 發佈:2018-11-06
一個新專案使用redis做純快取,在本機中無障礙使用,redis放到伺服器就出現上面的錯誤。
折騰了小一天排查各種可能性終於解決問題。最後不使用任何框架直接使用jedis 才發現問題的根本是redis開啟了保護模式。
解決如下:連線redis客戶端,使用命令
- 127.0.0.1:6379> config set protected-mode "no"
搞定。
根據一天的收攏連線不上redis存在的其他可能性。
1、redis沒有啟動(好囧,真的出現過這種情況)。
2、ip 或 host 不正確。
3、埠沒有開放。在redis官群裡有問同學說他有一次出現這個問題是因為16379埠沒有開放。
4、註釋掉reids.conf 的bind 。
=====================前方高能=====================
在新裝的redis中,預設開啟redis保護模式,只能本地訪問。
解決辦法在protected-mode配置專案上說的很明白了,
或、繫結ip地址bind ip
或、新增連線密碼項requirepass password
或、關閉保護模式protected-mode no
值得說的是我就這麼搞了也不好使,後來通過config get * 命令發現redis預設讀取的配置檔案竟然不是我修改的redis.conf(原因待查)。啟動時指定配置檔案後成功。
最終我的配置是,bind 本機固定ip, protected-mode yes,requirepass password。
最後web端成功連線,redis客戶端連線方式 /redis-cli -h ip -p host -a password。