標籤:密碼 www. yum 使用 [] 應該 目錄 exception ...
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 tcl
2.啟動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 successfullyserver 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串連