Python中使用flask-cache进行缓存优化的前后对比
昨天贴: https://www.v2ex.com/t/383172#reply4
用了 flask-cache 之后,虽然 vps 的内存、cpu、硬盘 IO、网络 IO 骤降,但是也出现了问题:
1、登录之后网页状态不改变。想过登录和注销后清楚缓存,但是 blueprint 不支持上下文?(不是很懂,反正此路不同)
2、网页内容会出现问题
于是有放弃了 flask-cache。内存、cpu、硬盘 IO、网络 IO 继续飙升

继续想办法...
妈的,不应该啊,我的网站流量又不大,怎么网络 IO 几万 Kb 几万 KB 的走啊!!!
看看网络监控吧 于是安装了
nethogs,一看居然有个 ip 长期占用!!!!! 你这是逆天啊!!!
一怒之下,将此 ip 访问直接导入百度

再看看内存、cpu、硬盘 IO、网络 IO:

终于又回归平静了!
结语:你妹!
Python中使用flask-cache进行缓存优化的前后对比
5 回复
Flask-Cache(现在通常用Flask-Caching)确实能显著提升性能,特别是在处理重复计算或数据库查询时。下面是一个完整示例,展示使用前后的区别。
未使用缓存的情况:
from flask import Flask
import time
app = Flask(__name__)
@app.route('/slow_query')
def slow_query():
# 模拟耗时操作(如数据库查询)
time.sleep(3)
return 'Data after 3 seconds'
if __name__ == '__main__':
app.run()
每次访问/slow_query都会等待3秒。
使用Flask-Caching优化后:
from flask import Flask
from flask_caching import Cache
import time
app = Flask(__name__)
app.config['CACHE_TYPE'] = 'simple' # 使用内存缓存
cache = Cache(app)
@app.route('/cached_query')
@cache.cached(timeout=60) # 缓存60秒
def cached_query():
time.sleep(3)
return 'Cached data - first load 3s, then instant'
if __name__ == '__main__':
app.run()
首次访问/cached_query仍需3秒,但后续60秒内的请求会立即返回缓存结果。
关键对比:
- 响应时间:未缓存每次3秒,缓存后首次3秒,后续请求毫秒级响应
- 服务器负载:缓存减少重复计算和数据库查询
- 实现复杂度:只需添加装饰器和配置
实际效果:
- 用户密集型页面加载速度提升明显
- API接口在高并发下更稳定
- 数据库压力显著降低
建议:对频繁访问且数据变化不频繁的接口使用缓存。
看到了 global ip…
#1 目测是爬虫
#2 ip 统计其他数据用的


