在大模型部署场景中,缓存失效策略直接影响系统性能与资源利用率。本文将从架构层面分析常见的缓存失效模式,并提供可复现的实践方案。
缓存失效策略类型
1. 时间驱动失效(TTL)
from redis import Redis
redis_client = Redis(host='localhost', port=6379)
# 设置缓存,5分钟过期
redis_client.setex('model_output:123', 300, 'result_data')
2. 内容驱动失效(版本控制)
import hashlib
# 计算输入哈希值作为缓存key
input_hash = hashlib.md5(input_data.encode()).hexdigest()
# 检查模型版本更新
if model_version != cached_version:
# 清除旧缓存
redis_client.delete(f"model_output:{input_hash}")
最佳实践方案
建议采用混合策略:
- 基于TTL设置基础失效时间(如30分钟)
- 结合模型版本更新机制,实现主动失效
- 添加缓存预热逻辑,在模型更新后重新生成热点数据
实现示例
class ModelCache:
def __init__(self, redis_client):
self.redis = redis_client
def get_or_set(self, key, func, ttl=1800):
cached = self.redis.get(key)
if cached:
return cached
result = func()
self.redis.setex(key, ttl, result)
return result
通过合理的缓存失效策略,可以在保证数据一致性的同时,最大化缓存命中率,降低模型推理成本。

讨论