本地java連結遠端伺服器Linux上redis出錯解決方案
阿新 • • 發佈:2019-01-02
在redis.conf檔案中bind 127.0.0.1加上#號
在redis.conf檔案中把 #requirepass 的#號去掉,在後面加上鍊接redis-server的密碼
在本地用java程式碼連結:
//Redis伺服器IP
private static String ADDR = "你的伺服器ip";
//Redis的埠號
private static int PORT = 6379;
//訪問密碼
private static String AUTH = "你配置的redis密碼";
//可用連線例項的最大數目,預設值為8;
//如果賦值為-1,則表示不限制;如果pool已經分配了maxActive個jedis例項,則此時pool的狀態為exhausted(耗盡)。
private static int MAX_ACTIVE = 1024;
//控制一個pool最多有多少個狀態為idle(空閒的)的jedis例項,預設值也是8。
private static int MAX_IDLE = 200;
//等待可用連線的最大時間,單位毫秒,預設值為-1,表示永不超時。如果超過等待時間,則直接丟擲JedisConnectionException;
private static int MAX_WAIT = 10000;
private static int TIMEOUT = 10000;
//在borrow一個jedis例項時,是否提前進行validate操作;如果為true,則得到的jedis例項均是可用的;
private static boolean TEST_ON_BORROW = true;
private static JedisPool jedisPool = null;
/**
* 初始化Redis連線池
*/
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxActive(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWait(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
jedisPool = new JedisPool(config, ADDR, PORT, TIMEOUT, AUTH);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 獲取Jedis例項
* @return
*/
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis resource = jedisPool.getResource();
return resource;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
/**
* 釋放jedis資源
* @param jedis
*/
public static void returnResource(final Jedis jedis) {
if (jedis != null) {
jedisPool.returnResource(jedis);
}
}
測試連結:
Jedis jedis = RedisUtil.getJedis();
if(jedis.isConnected()){
System.out.println("連線成功");
}else{
System.out.println("連結失敗");
}
//jedis.set("str1", "麼麼噠"); //儲存資料
System.out.println(jedis.get("str1")); //取出資料
控制檯: