在Linux環境下搭建Redis服務結合內網穿透實現通過GUI工具遠程管理數據庫

文章目錄

    • 前言
    • 1. 安裝Docker步驟
    • 2. 使用docker拉取redis鏡像
    • 3. 啟動redis容器
    • 4. 本地連接測試
      • 4.1 安裝redis圖形化界面工具
      • 4.2 使用RDM連接測試
    • 5. 公網遠程訪問本地redis
      • 5.1 內網穿透工具安裝
      • 5.2 創建遠程連接公網地址
      • 5.3 使用固定TCP地址遠程訪問

前言

本文主要介紹如何在Linux Ubuntu系統本地部署Redis容器,并結合cpolar內網穿透工具配置公網地址實現遠程訪問本地數據庫。

Redis作為一款高速緩存的key value鍵值對的數據庫,在許許多多的場景中廣泛使用,由于是把數據存儲在內存中,所以讀寫效率極高。而在docker中部署Redis也非常簡單,下面就來一起看看吧。

1. 安裝Docker步驟

本文中使用的操作系統為Ubuntu 22.04

添加Docker源

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg# Add the repository to Apt sources:
echo \"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

安裝 Docker 包

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

通過運行映像來驗證 Docker 引擎安裝是否成功

sudo docker run hello-world

此命令下載測試映像并在容器中運行它。當容器運行,它打印確認消息并退出。

2. 使用docker拉取redis鏡像

首先在終端中執行下方命令拉取鏡像:

sudo docker pull redis

image-20240119112726716

然后執行查看鏡像命令:

sudo docker images

1705635040000

可以看到成功拉取了Redis鏡像。

3. 啟動redis容器

在啟動容器前,需要簡單修改一下Redis外部掛載的配置文件。

本教程中,首先創建了/usr/local/redis/conf/redis.conf文件,

然后使用nano編輯器寫入了網上找的redis.conf文件,保存后退出編輯器。

#任何ip可以訪問
bind 0.0.0.0
#守護進程
#daemonize yes
daemonize yes
#不啟用保護模式
protected-mode no
#指定redis運行的端口
port 6379
tcp-backlog 511
timeout 0
#持久化?件名稱
dbfilename xdclass.rdb
#持久化?件存儲路徑
dir /data/
#持久化策略, 10秒內有個1個key改動,執?快照
save 10 1
######之前配置######
#導出rdb數據庫?件壓縮字符串和對象,默認是yes,會浪費CPU但是節省空間
rdbcompression yes
# 導?時是否檢查
rdbchecksum yes
#aof持久化配置
#appendonly yes
#appendfilename "appendonly.aof"
#appendfsync everysec
# aof重寫期間是否同步
no-appendfsync-on-rewrite no
# 重寫觸發配置
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# 加載aof時如果有錯如何處理
# yes表示如果aof尾部?件出問題,寫log記錄并繼續執?。
no表示提示寫?等待修復后寫?
aof-load-truncated yes

接下來在終端中執行下方命令啟動容器:

sudo docker run -p 6379:6379 --name redis -v /usr/local/redis/data:/data -v /usr/local/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf

這里我給容器的名稱起為redis,您可以根據需要替換成其他名稱。

然后執行下方命令查看容器是否正在運行:

sudo docker ps

1705654166715

可以看到剛才創建的myredis容器正在運行中。

4. 本地連接測試

4.1 安裝redis圖形化界面工具

現在我們已經在docker中本地部署了redis容器,如果要在本地進行連接測試,

可以下載redis圖形化界面工具:Redis Desktop Manager

下載地址:https://pan.baidu.com/s/19FLBKyQkRlK4ktZFRg3j6Q?pwd=6666

提取碼:6666

031e0a28c4815f87f8dd48bdbca151d

4.2 使用RDM連接測試

默認安裝完成后,點擊左下紅框位置的連接redis server按鈕:

0b36f14c2bbc4f102b148a69ac150ee

在彈出的窗口中,需要填入本機ip地址和redis的端口號:

1705654745490

輸入后點擊連接測試,如看到彈出框提示成功連接,即本地連接redis測試成功。

5. 公網遠程訪問本地redis

不過我們目前只能在本地使用剛剛部署的Jupyer Notebook,如果身在異地,想要遠程訪問在本地部署的redis容器,但又沒有公網ip怎么辦呢?

我們可以使用cpolar內網穿透工具來實現無公網ip環境下的遠程訪問需求。

5.1 內網穿透工具安裝

下面是安裝cpolar步驟:

cpolar官網地址: https://www.cpolar.com

  • 使用一鍵腳本安裝命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
  • 向系統添加服務
sudo systemctl enable cpolar
  • 啟動cpolar服務
sudo systemctl start cpolar

cpolar安裝成功后,在外部瀏覽器上訪問Linux 的9200端口即:【http://服務器的局域網ip:9200】,使用cpolar賬號登錄,登錄后即可看到cpolar web 配置界面,結下來在web 管理界面配置即可。

image-20230831171159175

5.2 創建遠程連接公網地址

登錄cpolar web UI管理界面后,點擊左側儀表盤的隧道管理——創建隧道:

  • 隧道名稱:可自定義,注意不要與已有的隧道名稱重復,本例使用了:redis
  • 協議:TCP
  • 本地地址:6379
  • 端口類型:隨機臨時TCP端口
  • 地區:選擇China Top

點擊創建

1705656110037

創建成功后,打開左側在線隧道列表,可以看到剛剛通過創建隧道生成了公網地址,接下來就可以在其他電腦(異地)上,將該地址與端口號分別復制到Redis Desktop Manager訪問即可。

image-20240119172500947

如下圖所示,ip地址位置填寫:12.tcp.cpolar.top,端口號填寫:13983 ,點擊鏈接測試:

1705656691940

1705656606403

可以看到連接成功!

小結

為了方便演示,我們在上邊的操作過程中使用了cpolar生成的TCP公網地址隧道,其公網地址是隨機生成的。

這種隨機地址的優勢在于建立速度快,可以立即使用。然而,它的缺點是網址是隨機生成,這個地址在24小時內會發生隨機變化,更適合于臨時使用。

如果有長期遠程訪問Redis的需求,但又不想每天重新配置公網地址,還想地址好看又好記,那我推薦大家選擇使用固定的TCP地址的方式來遠程訪問。

5.3 使用固定TCP地址遠程訪問

接下來保留一個固定TCP地址,登錄cpolar官網,點擊左側的預留,找到保留的TCP地址,為遠程服務器連接保留一個固定的地址:

  • 地區:選擇China VIP
  • 描述:即備注,可自定義,本例使用red123

點擊保留

1705656941660

地址保留成功后,復制生成的公網地址,打開cpolar web ui管理界面,點擊左側儀表盤的隧道管理——隧道列表,找到我們剛才創建的隨機公網地址隧道 redis,點擊編輯

image-20240119173708120

修改隧道信息,將剛才保留成功的固定TCP地址配置到隧道中

  • 端口類型:選擇固定TCP端口
  • 預留的TCP地址:復制粘貼官網保留成功的地址,本例中為:1.tcp.vip.cpolar.cn:23876

點擊更新

image-20240119173954008

隧道更新成功后,點擊左側儀表盤的狀態——在線隧道列表,可以看到公網地址已經更新為了固定TCP地址。

1705657295988

接下來與之前的操作一樣,可以在其他電腦(異地)上,使用這個固定的TCP地址訪問redis即可。

ip地址位置填寫:1.tcp.vip.cpolar.cn,端口號填寫:23876 ,點擊鏈接測試:

1705657392806

可以看到,使用固定的TCP地址成功遠程連接了本地Redis!使用cpolar內網穿透工具無需購買域名服務器,也不用設置路由器那么麻煩,輕松實現大家在公網遠程訪問本地服務的需求!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/40798.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/40798.shtml
英文地址,請注明出處:http://en.pswp.cn/web/40798.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql 9 新特新

mysql9新特性 新特性Audit Log NotesC API NotesCharacter Set SupportCompilation NotesComponent NotesConfiguration NotesData Dictionary NotesData Type NotesDeprecation and Removal NotesEvent Scheduler NotesJavaScript ProgramsOptimizer NotesPerformance Schema …

Spring中的事件監聽器使用學習

一、什么是Spring中的事件監聽機制? Spring框架中的事件監聽機制是一種設計模式,它允許你定義和觸發事件,同時允許其他組件監聽這些事件并在事件發生時作出響應。這種機制基于觀察者模式,提供了一種松耦合的方式來實現組件間的通信…

Linux 系統性能分析與故障排查:從入門到進階

Linux 系統性能分析與故障排查:從入門到進階 作為系統管理員或 IT 專業人員,掌握系統性能分析和故障排查技能至關重要。這些技能可以幫助你識別和解決系統性能問題,確保系統穩定運行。本文將介紹系統性能分析和故障排查的基本方法&#xff0…

CTF實戰:從入門到提升

CTF實戰:從入門到提升 🚀前言 沒有網絡安全就沒有國家安全,網絡安全不僅關系到國家整體信息安全,也關系到民生安全。近年來,隨著全國各行各業信息化的發展,網絡與信息安全得到了進一步重視,越…

XAML 框架橫向對比

多年來,基于 XAML 的 UI 框架有了很大的發展。下面的圖表很好地證明了這個觀點。XAML UI 框架的三大巨頭:Avalonia UI、Uno Platform 和 .NET MAUI 都支持跨平臺的應用。事實上,除了 Avalonia UI,對跨平臺 XAML 的需求是它們發展的…

【深度學習】圖形模型基礎(5):線性回歸模型第四部分:預測與貝葉斯推斷

1.引言 貝葉斯推斷超越了傳統估計方法,它包含三個關鍵步驟:結合數據和模型形成后驗分布,通過模擬傳播不確定性,以及利用先驗分布整合額外信息。本文將通過實際案例闡釋這些步驟,展示它們在預測和推斷中的挑戰和應用。…

Unity 使用AVProMovieCapture實現Game視圖屏幕錄制

內容將會持續更新,有錯誤的地方歡迎指正,謝謝! Unity 使用AVProMovieCapture實現Game視圖屏幕錄制 TechX 堅持將創新的科技帶給世界! 擁有更好的學習體驗 —— 不斷努力,不斷進步,不斷探索 TechX —— 心探索、心…

【云計算】公有云、私有云、混合云、社區云、多云

公有云、私有云、混合云、社區云、多云 1.云計算的形態1.1 公有云1.2 私有云1.3 混合云1.4 社區云1.5 多云1.5.1 多云和混合云之間的關系1.5.2 多云的用途1.5.3 影子 IT 和多云1.5.4 優缺點 2.不同云形態的對比 1.云計算的形態 張三??在家做飯吃,這是 私有云&…

liunx上修改Firefox版本號

在Linux上修改Firefox的版本號并不直接推薦也不鼓勵,因為這可能會影響到瀏覽器的安全性、兼容性和自動更新功能。但如果你因為某些特殊測試場景確實需要修改其顯示的版本號(請注意,這樣做可能會引發不可預料的問題),可…

【擴散模型】LCM LoRA:一個通用的Stable Diffusion加速模塊

潛在一致性模型:[2310.04378] Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference (arxiv.org) 原文:Paper page - Latent Consistency Models: Synthesizing High-Resolution Images with Few-Step Inference (…

ELK優化之Filebeat部署

目錄 1.安裝配置Nginx 2.安裝 Filebeat 3.設置 filebeat 的主配置文件 4.修改Logstash配置 5.啟動配置 6.kibana驗證 主機名ip地址主要軟件es01192.168.9.114ElasticSearches02192.168.9.115ElasticSearches03192.168.9.116ElasticSearch、Kibananginx01192.168.9.113ng…

【鎖】各種鎖的概念

解釋一下什么是樂觀鎖、悲觀鎖、自旋鎖、互斥鎖、讀寫鎖、排他鎖、共享鎖、統一鎖、分段鎖? 定義角度不同,通常把(樂觀鎖、悲觀鎖)、(自旋鎖、互斥鎖)、(讀寫鎖、排他鎖、共享鎖)、…

Redis---9---集群(cluster)

將新增的6387節點(空槽號)作為master節點加入原集群 Redis—9—集群(cluster) 是什么 定義 ? 由于數據量過大,單個Master復制集難以承擔,因此需要對多個復制集進行集群,形成水平擴展每個復…

Selenium 切換窗口

環境: Python 3.8 selenium3.141.0 urllib31.26.19說明: driver.current_window_handle # 返回當前窗口的句柄 driver.window_handles # 返回當前由driver啟動所有窗口句柄,是個列表 driver.switch_to.window(handle) # 根據 handle 切換窗口…

5個實用的文章生成器,高效輸出優質文章

在自媒體時代,優質內容的持續輸出是吸引讀者、提升影響力的關鍵。然而,對于許多自媒體創作者來說,頻繁的創作難免會遭遇靈感枯竭、創作不出文章的困擾。此時,文章生成器便成為了得力的助手。文章生成器的優勢能夠快速自動生成高質…

代碼隨想錄算法訓練營第13天|二叉樹的遞歸遍歷、二叉樹的迭代遍歷、二叉樹的統一迭代法、102.二叉樹的層序遍歷

打卡Day13 1.理論基礎2.二叉樹的遞歸遍歷3.二叉樹的迭代遍歷3.二叉樹的統一迭代法4.102.二叉樹的層序遍歷擴展107. 二叉樹的層序遍歷 II199.二叉樹的右視圖637.二叉樹的層平均值429.N叉樹的層序遍歷515.在每個樹行中找最大值116.填充每個節點的下一個右側節點指針117. 填充每個…

如何保證接口冪等性

如何保證接口冪等性 1、冪等性是什么? 接口冪等性是指用戶對于同一操作發起的一次請求或者多次請求的結果是一致的,不會因為多次點擊而產生了不同的結果。 2、使用冪等性的場景有哪些? 頁面點擊保存按鈕時,不小心快速點了兩次…

Python面試題-6

1. 請解釋Python中的動態類型。 Python中的動態類型 Python是一種動態類型語言,這意味著你不需要在編程時聲明變量的類型,而是在運行時自動推斷類型。在Python中,變量的類型是在程序運行時決定的,這意味著同一個變量可以在不改變…

上萬組風電,光伏,用戶負荷數據分享

上萬組風電,光伏,用戶負荷數據分享 可用于風光負荷預測等研究 獲取鏈接🔗 https://pan.baidu.com/s/1izpymx6R3Y8JsFdx42rL0A 提取碼:381i 獲取鏈接🔗 https://pan.baidu.com/s/1izpymx6R3Y8JsFdx42rL0A 提取…

一行代碼用git新建分支

1.在本地創建分支 dev git branch dev2.切換分支 git checkout devwebstorm操作如下: 3.推送新分支到遠程 git push --set-upstream origin 分支名webstorm操作如下:提交代碼的時候會自動推送到遠程 4.到git上面可以看看剛剛推送的內容 dev多推送…