昨天在測試redis一個勁的報出redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool查了一下午的百度,發現沒有一個是能解決我這個異常拋出的 ;
因爲我的reids是安裝在linux上的。 所以我獲取連接的時候
// 初始化
public Redis(){
initialPool();
jedis = jedisPool.getResource();
}
/**
* 初始化非切片池
*/
private void initialPool()
{
// 池基本配置
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(100);
config.setMaxIdle(5);
config.setMaxWaitMillis(100000);
config.setTestOnBorrow(false); //<!--定時對線程池中空閒的鏈接進行validateObject校驗-->
jedisPool = new JedisPool(config,"服務器ip",6379);
}
我發現的的配置沒有問題啊! 而且我也沒設置redis密碼。 所以問題不是出在這裏。
就想是不是linux上面的redis配置有問題、 去看了一下 果然
linux上面的redis配置文件時綁定本地的。 難怪獲取不到。
所以我就先把 bind 後面的ip改成了服務器 ip 發現可以拿取到連接了。 但是linux上面的redis客戶端沒辦法進去了。
後面想了一下 linux上的客戶端訪問的是本地的 所以就乾脆點把 bind 註釋掉了。
然後一切就ok了。