方案一:開放Redis默認端口,本地通過公網IP+端口號的形式訪問。
方案二:每次將本地編寫好的Java代碼打包,放在云服務器上運行。
方案三:配置ssh端口轉發,把云服務器的redis端口,映射到本地主機。
對于方案一來說,由于公網IP誰都可以訪問,又開放了Redis的端口,現在所有人都可以來訪問了,其中不乏一些“非法分子”,保不齊就在你的內存中整點東西~不夠安全。
對于方案二來說,每次都需要代碼打包,上傳到云服務器上,比較麻煩,雖然可以通過第三方工具,但是相較于方案三來說,人工成本比較高~
本文著重講解方案三。
配置xshell
首先找到當前連接的屬性選項。
然后點擊隧道,再點擊添加。
填寫本地需要被偵聽的端口,以及后續訪問云服務器的端口。
最后點擊確定,并進行連接。
如何查看已經建立好映射關系呢?
在本地cmd中,輸入命令
netstat -ano | findstr 8888
看到如下信息,就說明是建立好了。
此時我們往本地的8888端口發消息,就會被轉發到服務器上。
配置Redis
首先找到redis的配置文件
whereis redis
然后cd到這個路徑,然后vim redis.conf
在配置文件中將127.0.0.1修改成0.0.0.0
然后再找到protect-mode
將yes修改成no
最后保存退出。
代碼驗證
首先在idea引入依賴
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.4.2</version></dependency>
編寫代碼:
public static void main(String[] args) {JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");Jedis jedis = jedisPool.getResource();jedis.mset("key1", "111", "key2", "222", "key3", "333");List<String> values = jedis.mget("key1", "key2", "key3");System.out.println("values: " + values);jedis.close();}
輸出如下:
這就說明沒問題了~
現在就可以在本地主機上安全的操作云服務器上的redis了~