Ubuntu 下 Python 缓存系统配置指南
一 方案总览与选型
二 安装与启动缓存服务
sudo apt-get update && sudo apt-get install redis-serversudo systemctl start redis-serverredis-cli ping 返回 PONG 表示可用sudo apt-get install memcachedsudo systemctl start memcachedecho stats | nc 127.0.0.1 11211 能看到统计信息maxmemory 1gb 与淘汰策略 maxmemory-policy allkeys-lru(按业务调整)。-m 1024(单位 MB)与监听 -l 127.0.0.1 -p 11211(按需开放远程)。三 Python 与 Django 集成示例
pip install redisimport 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"))
pip install python-memcachedimport memcache
mc = memcache.Client(["127.0.0.1:11211"], debug=0)
mc.set("k", "v", time=60)
print(mc.get("k"))
pip install django-redisCACHES = {
"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 = [
"django.middleware.cache.UpdateCacheMiddleware",
# ... 其他中间件 ...
"django.middleware.cache.FetchFromCacheMiddleware",
]
from django.core.cache import cache
cache.set("my_key", "hello", 30)
cache.get("my_key")
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"
四 生产环境建议与监控