在使用jedis的過程中,由于我不是使用本地的redis作為連接配接庫,我是使用本人遠端的伺服器上的redis作為存儲庫,在使用的過程中遇到了一些小問題。比如說連接配接不上遠端的伺服器上的redis
解決辦法:
* 1:在本機上使用telnet指令看看是否是遠端伺服器的防火牆禁止6379端口被通路
如果是被防火牆給禁止了,需要去配置防火牆配置檔案,将這兩個端口打開
iptables -A INPUT -p tcp --dport -j ACCEPT
iptables -A OUTPUT -p tcp --sport -j ACCEPT
- 2然後再看下是否是添加上去了
如下所示:
target prot opt source destination
ACCEPT tcp -- / / tcp dpt:
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- / / tcp spt:
-
3最後别忘記了儲存 對防火牆的設定
通過指令:service iptables save 進行儲存
-
4重新開機iptables
service iptables restart
- 5然後打開你的redis的redis.conf檔案,把
這行代碼注釋了bind 127.0.0.1
但是這時候還是不行的,因為redis預設的配置檔案配置redis目前處于受保護的模式,我們隻需要給他設定密碼就行了
打開伺服器的redis-cli用戶端
輸入
set requirepass yourpwd
再輸入
quit
再次打開redis-cli用戶端
試着ping一下你的redis這時候你發現已經ping不通了,因為我們給他設定了密碼,
輸入
auth yourpwd
ok搞定
public class RedisConnect {
static String constr = "your ip" ;
public static Jedis getRedis(){
Jedis jedis = new Jedis(constr) ;
jedis.auth("yourpwd");
return jedis ;
}
public static void main(String[] args){
Jedis j = RedisConnect. getRedis() ;
String output ;
j.set( "hello", "world" ) ;
output = j.get( "hello") ;
System. out.println(output) ;
}
}
上述代碼片段運作成功,說明你的配置成功了