Redis Vector Search 加缓存,先设计失效和回源
向量检索前面加缓存并不难,难的是语料或 embedding 更新后,旧结果还能活多久。命中率高不代表正确,缓存键和失效规则必须带上数据版本。
键里放影响结果的条件
查询规范化结果、租户、过滤条件、embedding 版本和索引版本都可能改变召回。遗漏其中一项,就可能把别人的结果或旧语料返回给当前请求。权限过滤不能只在回源时做。
多级缓存明确谁是副本
进程内缓存速度快但不共享,Redis 便于集中管理,向量索引才是检索事实来源。每层设置容量和 TTL,失败时决定绕过、返回过期结果还是直接报错。不能让缓存不可用拖垮索引。
观察命中之外的指标
同时看错误命中、回源压力、淘汰、重建和依赖失败。使用固定查询对比缓存前后的结果一致性,性能数据附上冷热状态和样本规模。
缓存像冰箱,不写日期的东西迟早不敢吃。版本、失效和回源都清楚,命中率才有意义。