Ubuntu Python如何配置缓存系统
导读:Ubuntu 下 Python 缓存系统配置指南 一 方案总览与选型 内存键值缓存:优先选用 Redis(支持持久化、丰富数据结构、可做消息队列)或 Memcached(极简、纯内存、适合高并发读)。 HTTP 层缓存:在 Django/...
Ubuntu 下 Python 缓存系统配置指南
一 方案总览与选型
- 内存键值缓存:优先选用 Redis(支持持久化、丰富数据结构、可做消息队列)或 Memcached(极简、纯内存、适合高并发读)。
- HTTP 层缓存:在 Django/Flask/FastAPI 中设置 Cache-Control、ETag 等响应头,结合条件请求(如 If-None-Match)实现客户端/反向代理缓存。
- CDN 静态资源缓存:将 图片、CSS、JS 等推送到 CDN,降低源站压力、提升全球访问速度。
- 系统层优化:合理设置 内核参数 与 文件系统缓存,并使用 top/htop/vmstat/iostat 做性能监控与瓶颈定位。
二 安装与启动缓存服务
- 安装并启动 Redis
- 安装:
sudo apt-get update & & sudo apt-get install redis-server - 启动:
sudo systemctl start redis-server - 验证:
redis-cli ping返回 PONG 表示可用
- 安装:
- 安装并启动 Memcached
- 安装:
sudo apt-get install memcached - 启动:
sudo systemctl start memcached - 验证:
echo stats | nc 127.0.0.1 11211能看到统计信息
- 安装:
- 基本配置建议
- Redis:在 /etc/redis/redis.conf 中设置
maxmemory 1gb与淘汰策略maxmemory-policy allkeys-lru(按业务调整)。 - Memcached:在 /etc/memcached.conf 中设置
-m 1024(单位 MB)与监听-l 127.0.0.1 -p 11211(按需开放远程)。
- Redis:在 /etc/redis/redis.conf 中设置
三 Python 与 Django 集成示例
- 通用 Redis 客户端(非 Django)
- 安装:
pip install redis - 示例:
import redis r = redis.Redis(host="127.0.0.1", port=6379, db=0, decode_responses=True) r.set("k", "v", ex=60) # 60 秒过期 print(r.get("k"))
- 安装:
- 通用 Memcached 客户端(非 Django)
- 安装:
pip install python-memcached - 示例:
import memcache mc = memcache.Client(["127.0.0.1:11211"], debug=0) mc.set("k", "v", time=60) print(mc.get("k"))
- 安装:
- Django 使用 Redis 作为缓存
- 安装:
pip install django-redis - 配置 settings.py:
CACHES = { "default": { "BACKEND": "django_redis.cache.RedisCache", "LOCATION": "redis://127.0.0.1:6379/1", "OPTIONS": { "CLIENT_CLASS": "django_redis.client.DefaultClient", } } } # 可选:将 Session 存入缓存 SESSION_ENGINE = "django.contrib.sessions.backends.cache" SESSION_CACHE_ALIAS = "default" - 使用:
- 视图缓存:
from django.views.decorators.cache import cache_page@cache_page(60 * 15) # 15 分钟 def my_view(request): return HttpResponse("Hello") - 全站缓存(在 MIDDLEWARE 顶部/底部加入):
MIDDLEWARE = [ "django.middleware.cache.UpdateCacheMiddleware", # ... 其他中间件 ... "django.middleware.cache.FetchFromCacheMiddleware", ] - 低级 API:
from django.core.cache import cache cache.set("my_key", "hello", 30) cache.get("my_key")
- 视图缓存:
- 安装:
- Flask 使用 Redis 缓存
- 安装:
pip install Flask-Caching(建议用新包名 Flask-Caching,旧名 Flask-Cache 已不再维护) - 示例:
from flask import Flask from flask_caching import Cache app = Flask(__name__) app.config["CACHE_TYPE"] = "RedisCache" app.config["CACHE_REDIS_URL"] = "redis://127.0.0.1:6379/1" cache = Cache(app) @app.route("/") @cache.cached(timeout=120) # 2 分钟 def index(): return "Hello, cache"
- 安装:
四 生产环境建议与监控
- 资源与淘汰策略
- 为 Redis 设置合理的内存上限(如 maxmemory)与淘汰策略(如 allkeys-lru),避免 OOM;为 Memcached 设置合适的 -m 值并限制监听地址。
- 连接与高可用
- 使用连接池、设置超时与重试;Redis 建议启用 AOF/RDB 持久化与必要的 主从/哨兵 或集群方案以提升可用性。
- 监控与排障
- 使用 redis-cli info、memcached-tool 或应用性能监控,配合 top/htop/vmstat/iostat 观察 CPU、内存、I/O 与命中率变化,及时调参。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Python如何配置缓存系统
本文地址: https://pptw.com/jishu/771096.html
