You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Azure App Service多容器实例间实现Flask应用共享文件系统缓存?

在Azure App Service Linux多实例下共享Flask-Caching缓存的方案

首先明确:你原本考虑的文件系统缓存(FileSystemCache)在多实例/容器场景下完全行不通——Azure App Service的每个Linux容器实例都有独立的本地文件系统,缓存数据没法在实例间同步,每个实例都会各自维护一套缓存,根本起不到跨实例共享的作用。

下面给几个适合你场景的可行方案:

首选方案:Azure Redis Cache

这是分布式缓存的标准方案,Flask-Caching原生支持Redis后端,配置简单,性能拉满,完全适配多实例场景。

  • 操作步骤:
    1. 去Azure门户创建一个Azure Redis Cache实例,拿到它的连接字符串(包含主机名、端口、密码)。
    2. 给你的Flask项目装依赖:pip install redis
    3. 配置Flask-Caching:
      from flask import Flask
      from flask_caching import Cache
      
      app = Flask(__name__)
      cache_config = {
          "CACHE_TYPE": "RedisCache",
          "CACHE_REDIS_URL": "redis://:<你的密码>@<Redis主机名>:<端口>/0"  # 替换成你自己的连接字符串
      }
      cache = Cache(app, config=cache_config)
      
  • 为啥选它:延迟低、扛得住高并发,而且是Azure托管的,不用你自己运维,完美解决多实例缓存共享的问题。

次选方案:Azure Cosmos DB(SQL API)

如果你的项目已经在使用Cosmos DB存数据,可以直接用它当缓存后端,Flask-Caching能通过SQLAlchemy对接。

  • 操作步骤:
    1. 在Azure门户建Cosmos DB实例(选SQL API),获取SQL连接字符串。
    2. 装依赖:pip install sqlalchemy flask-sqlalchemy
    3. 配置代码:
      from flask import Flask
      from flask_caching import Cache
      from flask_sqlalchemy import SQLAlchemy
      
      app = Flask(__name__)
      app.config['SQLALCHEMY_DATABASE_URI'] = "<你的Cosmos DB SQL连接字符串>"
      db = SQLAlchemy(app)
      
      cache_config = {
          "CACHE_TYPE": "SQLAlchemyCache",
          "CACHE_SQLALCHEMY": db,
          "CACHE_TABLE": "flask_cache"  # 自动生成的缓存表名,可自定义
      }
      cache = Cache(app, config=cache_config)
      
  • 优势:能和现有数据栈整合,不用额外维护新的缓存服务,但性能比Redis差一些,适合对缓存性能要求不是特别高的场景。

备选方案:Azure Storage Blob(自定义后端)

如果想找低成本的缓存存储,可以基于Azure Blob Storage自己写Flask-Caching的后端,但需要你实现缓存的读写逻辑,适合有一定开发经验的情况。

  • 核心思路:继承Flask-Caching的BaseCache类,实现get、set、delete这些核心方法,用Azure Blob Storage SDK来操作Blob存储缓存数据。

内容的提问来源于stack exchange,提问作者justanotherdeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 04:10:58