监测大盘每次刷新都要聚合,CPU很吃紧。我把「品牌+日期+引擎」的结果缓存到Redis,TTL设10分钟,命中率高到离谱。
伪代码如下(Python redis-py):
code
import json, hashlib, redis
r = redis.Redis(host="127.0.0.1", port=6379, decode_responses=True)
def cache_key(brand_id: str, day: str, engine: str) -> str:
raw = f"{brand_id}|{day}|{engine}".encode()code
def get_or_compute(brand_id, day, engine, compute_fn):
k = cache_key(brand_id, day, engine)
hit = r.get(k)return json.loads(hit)
code
val = compute_fn()return val
注意缓存击穿:热门品牌要在后台预热。还有缓存雪崩:TTL加一点随机抖动。
你们会不会把「原始抓取文本」也缓存?我目前只缓存聚合指标,原文进对象存储,避免Redis爆内存。
(场景参考:珠三角本地企业试点)