centos7遠程服務器中redis的安裝與java連接
阿新 • • 發佈:2018-04-15
解壓 new IT nload ucc 問題 send gcc 工具
1.下載安裝redis
在遠程服務器中你想下載的位置執行以下命令來下載redis文件到服務器中
$ wget http://download.redis.io/releases/redis-4.0.9.tar.gz
說明:$是指你的當前目錄,不是命令的一部分,wget命令用來下載網上資源,後面的地址是網上資源路徑,你可以去redis官網上查找你想下載的redis版本的下載路徑
解壓文件
$ tar xzf redis-4.0.9.tar.gz
編譯文件$ cd redis-4.0.9
$ make註意:如果在make時報錯有如下原因
1.沒有安裝gcc(因為redis是用c寫得),並且是4以上版本需要執行 yum install gcc
2.有可能也要安裝gcc++,需要執行 yum install gcc++
3.如果要用make test命令測試redis,還需要安裝tcl,命令為 yum install tcl2.啟動redis服務和客戶端
在redis-4.0.9(解壓編譯目錄)下執行
$ src/redis-server
這樣就啟動了服務,界面會出項相應的啟動信息
現在再來啟動客戶端
$ src/redis-cli
3.使用java客戶端訪問遠程redis服務
因為redis本身默認是不支持遠程地址訪問的,所以我們需要先配置一下redis
1.編輯安裝目錄下的redis.conf文件,註釋掉本地ip綁定,
#bind 127.0.0.1
2.在本地客戶端中設置登錄密碼
$ config set requirepass mypwd
這樣基本就可以啦
具體的這塊配置參考:
https://www.cnblogs.com/y-l-h/p/7930085.html
https://www.cnblogs.com/machanghai/p/5497043.html
接下來在開發工具中創建maven項目,添加jedis依賴
<dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> </dependencies>
編寫客戶端
import redis.clients.jedis.Jedis; public class RedisTest {public static void main(String[] args) {
//create your redis ip address
String redisIp = ""; //Connecting to Redis server on cloud server Jedis jedis = new Jedis(redisIp); //authentication password jedis.auth("12358"); System.out.println("Connection to server successfully"); //check whether server is running or not System.out.println("server is running: "+jedis.ping()); } }
結果如下,表示連接成功
Connection to server successfully
server is running: PONG
其他問題:之前用阿裏的雲服務器進行redis遠程連接時會報錯
xception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out at redis.clients.jedis.Connection.connect(Connection.java:207) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93) at redis.clients.jedis.Connection.sendCommand(Connection.java:126) at redis.clients.jedis.Connection.sendCommand(Connection.java:117) at redis.clients.jedis.BinaryClient.auth(BinaryClient.java:564) at redis.clients.jedis.BinaryJedis.auth(BinaryJedis.java:2138) at top.pancras.redis.RedisTest.main(RedisTest.java:11) Caused by: java.net.SocketTimeoutException: connect timed out at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at redis.clients.jedis.Connection.connect(Connection.java:184) ... 6 more
防火墻沒有開啟,不是防火墻的問題,主要在於阿裏的雲服務想要對外開放端口還需要在其官網進行配置才可以,參考http://www.cnblogs.com/coffee9527/p/8711906.html,把端口改成你要開放的端口應該就可以啦
centos7遠程服務器中redis的安裝與java連接