欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker容器高效連接Redis的方法步驟

 更新時(shí)間:2024年09月09日 10:12:41   作者:吃面不喝湯66  
在微服務(wù)架構(gòu)中,Redis?是一種常見的高效緩存解決方案,通常用于存儲(chǔ)臨時(shí)數(shù)據(jù)、會(huì)話信息或?token,這篇博客將以實(shí)際項(xiàng)目為例,詳細(xì)介紹如何配置?Flask?應(yīng)用中的服務(wù)容器連接宿主機(jī)上的?Redis?服務(wù),需要的朋友可以參考下

引言

在微服務(wù)架構(gòu)中,Redis 是一種常見的高效緩存解決方案,通常用于存儲(chǔ)臨時(shí)數(shù)據(jù)、會(huì)話信息或 token。如何在服務(wù)容器中高效、穩(wěn)定地連接 Redis 是架構(gòu)設(shè)計(jì)中的一個(gè)重要環(huán)節(jié)。

這篇博客將以實(shí)際項(xiàng)目為例,詳細(xì)介紹如何配置 Flask 應(yīng)用中的服務(wù)容器連接宿主機(jī)上的 Redis 服務(wù).

一、服務(wù)架構(gòu)概述

通常,我們的應(yīng)用程序運(yùn)行在容器中,而 Redis 可以運(yùn)行在宿主主機(jī)上或者單獨(dú)的容器內(nèi)。為了避免不必要的端口映射和復(fù)雜的網(wǎng)絡(luò)配置,以下介紹的是如何通過容器中的 Flask 應(yīng)用連接宿主機(jī)上的 Redis 服務(wù)。

架構(gòu)圖可以簡單地表示為:

+-----------------+      +-----------------+
|                 |      |                 |
|   Flask 容器    | ---> | Redis 服務(wù) (宿主機(jī))|
|                 |      |                 |
+-----------------+      +-----------------+

二、Redis 容器與 Flask 服務(wù)容器的網(wǎng)絡(luò)配置

宿主機(jī)上 Redis 服務(wù)的配置

首先,我們需要在宿主機(jī)上運(yùn)行 Redis 并確保其對(duì)外開放接口,允許來自容器的連接。

安裝 Redis (如果尚未安裝):

sudo apt-get install redis-server

配置 Redis 監(jiān)聽所有接口: 打開 Redis 的配置文件 /etc/redis/redis.conf,確保 bind 選項(xiàng)設(shè)置為 0.0.0.0,允許來自外部的連接:

bind 0.0.0.0

并確保將 Redis 配置為帶有密碼保護(hù):

requirepass 123...

重啟 Redis 服務(wù):

sudo systemctl restart redis-server

允許防火墻端口: 開放 Redis 的端口 6379,確保 Flask 容器可以連接:

sudo ufw allow 6379

三、Flask 服務(wù)容器如何連接 Redis

當(dāng) Redis 在宿主主機(jī)上運(yùn)行時(shí),F(xiàn)lask 容器需要通過宿主機(jī)的 IP 地址來連接到 Redis 服務(wù)。假設(shè)宿主機(jī)的 IP 地址為 172.29.11.11,以下是如何在 Flask 應(yīng)用中配置 Redis 連接。

1. Redis 連接配置

在 Flask 應(yīng)用的代碼中,我們通過 redis.StrictRedis 來連接 Redis。

import redis
 
# 配置 Redis 連接
redis_client = redis.StrictRedis(
    host='172.29.11.11',  # 宿主機(jī)的 IP 地址
    port=6379,             # Redis 端口
    password='123...',   # Redis 的密碼
    db=0,                  # 默認(rèn)數(shù)據(jù)庫
    decode_responses=True,  # 自動(dòng)解碼 Redis 響應(yīng)
    socket_timeout=5        # 設(shè)置超時(shí)時(shí)間
)

2. Flask 容器的運(yùn)行

假設(shè)你已經(jīng)有了一個(gè) Flask 服務(wù)的 Docker 容器,運(yùn)行該容器時(shí)的命令如下:

docker run -d --name myapp -p 5000:5000 \
    -e REDIS_HOST=172.29.11.11 \
    ${{ secrets.DOCKER_HUB_USERNAME }}/myapp:${{ github.sha }}

這個(gè)命令使用環(huán)境變量 REDIS_HOST 將 Redis 的宿主機(jī) IP 地址注入到容器中。在 Flask 應(yīng)用中,你也可以通過讀取這個(gè)環(huán)境變量來動(dòng)態(tài)配置 Redis 連接。

import os
 
redis_client = redis.StrictRedis(
    host=os.getenv('REDIS_HOST', 'localhost'),  # 通過環(huán)境變量讀取 Redis 地址
    port=6379,
    password='123...',
    db=0,
    decode_responses=True,
    socket_timeout=5
)

總結(jié):從容器中連接宿主主機(jī)的最佳實(shí)踐

  • 網(wǎng)絡(luò)配置:確保宿主機(jī)的 Redis 監(jiān)聽所有接口 (0.0.0.0) 并開放了防火墻端口。
  • 連接方式:使用宿主機(jī)的 IP 地址來連接 Redis,而不是 localhost。
  • 安全性:通過密碼 (requirepass) 來確保 Redis 連接的安全性。

以上就是docker容器高效連接Redis的方法步驟的詳細(xì)內(nèi)容,更多關(guān)于docker容器連接Redis的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 詳解Docker如何啟動(dòng)一個(gè)Centos鏡像

    詳解Docker如何啟動(dòng)一個(gè)Centos鏡像

    本篇文章主要介紹了詳解Docker如何啟動(dòng)一個(gè)Centos鏡像,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-05-05
  • Linux平臺(tái)搭建docker環(huán)境并簡單使用示例

    Linux平臺(tái)搭建docker環(huán)境并簡單使用示例

    這篇文章主要介紹了Linux平臺(tái)搭建docker環(huán)境及簡單使用方法,需要的朋友參考下吧
    2017-01-01
  • Docker安裝anythingllm流程

    Docker安裝anythingllm流程

    該文介紹了如何使用Docker安裝并運(yùn)行anythingllm應(yīng)用程序,通過掛載兩個(gè)本地目錄(C:\anythingllm\storage和C:\anythingllm\env)到Docker容器中,并在瀏覽器中訪問http://localhost:3001/,即可啟動(dòng)并使用anythingllm,作者分享個(gè)人經(jīng)驗(yàn),鼓勵(lì)大家參考并支持腳本之家
    2025-02-02
  • CentOS7.2服務(wù)器上搭建Docker私有鏡像倉庫操作示例

    CentOS7.2服務(wù)器上搭建Docker私有鏡像倉庫操作示例

    這篇文章主要介紹了CentOS7.2服務(wù)器上搭建Docker私有鏡像倉庫操作,結(jié)合實(shí)例形式分析了基于CentOS7.2平臺(tái)docker安裝、證書和密鑰生成、私有鏡像創(chuàng)建與啟動(dòng)等操作相關(guān)命令與使用技巧,需要的朋友可以參考下
    2018-06-06
  • 使用Golang玩轉(zhuǎn)Docker API的實(shí)踐

    使用Golang玩轉(zhuǎn)Docker API的實(shí)踐

    這篇文章主要介紹了使用Golang玩轉(zhuǎn)Docker API的實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 基于Harbor構(gòu)建docker私有倉庫的方法

    基于Harbor構(gòu)建docker私有倉庫的方法

    這篇文章主要介紹了Harbor構(gòu)建docker私有倉庫的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • Docker搭建Jenkins并自動(dòng)化打包部署項(xiàng)目的步驟

    Docker搭建Jenkins并自動(dòng)化打包部署項(xiàng)目的步驟

    本文主要介紹了Docker搭建Jenkins并自動(dòng)化打包部署項(xiàng)目的步驟,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • docker<容器數(shù)據(jù)卷-v>對(duì)容器內(nèi)數(shù)據(jù)持久化詳解(備份)

    docker<容器數(shù)據(jù)卷-v>對(duì)容器內(nèi)數(shù)據(jù)持久化詳解(備份)

    容器的數(shù)據(jù)持久化主要是指宿主機(jī)與容器,以及容器與容器之間進(jìn)行數(shù)據(jù)交互,下面這篇文章主要給大家介紹了關(guān)于docker<容器數(shù)據(jù)卷-v>對(duì)容器內(nèi)數(shù)據(jù)持久化的相關(guān)資料,需要的朋友可以參考下
    2023-03-03
  • Docker compose up -d與Docker restart的區(qū)別

    Docker compose up -d與Docker restart的區(qū)別

    本文主要介紹了Docker compose up -d與Docker restart的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 解決docker網(wǎng)絡(luò)錯(cuò)誤(network bridge not found)

    解決docker網(wǎng)絡(luò)錯(cuò)誤(network bridge not found)

    這篇文章主要介紹了解決docker網(wǎng)絡(luò)錯(cuò)誤(network bridge not found)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評(píng)論