1. 程式人生 > >java連線redis

java連線redis

java連結redis需要使用jedis包,例項使用的是jedis-2.8.1.jar    下載地址:http://pan.baidu.com/s/1jHLN9u2

一、建立連線池

private JedisPool pool = null;
	public void init(){// 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
	config.setMaxTotal(8);//最大連線數
        config.setMaxIdle(50); //最大空閒連線數
        config.setMinIdle(5); //最小空閒連線數
        config.setMaxWaitMillis(1000l); //獲取連線時的最大等待毫秒數(如果設定為阻塞時BlockWhenExhausted),如果超時就拋異常, 小於零:阻塞不確定的時間,  預設-1
        config.setTestOnBorrow(false); //在獲取連線的時候檢查有效性, 預設false
	config.setTestWhileIdle(false);//在空閒時檢查有效性, 預設false
        pool = new JedisPool(config,"192.168.1.101",6379);
	}
	

二、從連線池中獲取連結查詢,查詢完畢記得關閉連線

public void getKey() {
		Jedis jedis = null;
		try{
			String name = jedis.get("name");
		} catch (Exception e) {
			e.printStackTrace();
			jedis.close();
		}
	}
出現問題描述: 
1.Could not get a resource from the pool, Connection refused: connect

這裡寫圖片描述

windows Java這邊客戶端連結被拒接了,想想問題

1.Vmware裡面的Linux所安裝的Redis已經正常啟動 
2.在windows用ssh客戶端連結linux可以操作redis 
3.linux防火牆已經關閉 
4.拼linux的ip也能拼通

按理說應該沒問題,下利用telnet測試下埠

telnet 192.168.0.104 6379

發現埠不能拼通,但是linu下其他的埠能拼通,說明就是redis自身配置的問題了

看了下配置檔案,發現配置檔案綁定了本地ip,該配置會導致,其他ip登入被拒絕,所以我們把它註釋掉


並設定  protected-mode no  //關閉保護模式