Skip to content
阅读进度

搜题缓存怎样设计?热点失效、空结果和题目纠错怎么办? ​

返回 数据与搜索 目录

标准回答 ​

先说明缓存了哪一层,以及键包含哪些会改变结果的条件。重复查询能复用结果,但题目纠错、索引更新和权限变化需要明确失效策略;热点同时过期时还应避免所有请求一起压向搜索服务。缓存产品和参数只能按真实实现作答。

通俗例子 ​

一个热门题的缓存到期后,很多相同请求同时到来,如果都直接查询 ES,会产生一波集中回源。可考虑只让一个请求重建,其余受控等待或使用符合策略的旧结果。

深入解释 ​

**键先保证结果语义相同:**规范化查询可以提高命中,但学科、分页或过滤条件若影响结果,也需要纳入键;不能为了命中率把不同查询混为一谈。

**更新要有可接受的旧数据窗口:**TTL、主动失效或版本键各有取舍。题目答案更正后,旧答案最多还能被看到多久,应有明确说明。

**异常流量控制回源:**短时缓存空结果、合并相同回源或错开过期可作为方案;需要区分已落地机制与现在提出的改进。

追问与回答 ​

缓存到底用 Redis 还是本地内存? ​

简历没写,按实际实现回答,不应默认补成 Redis 集群。

缓存答案还能扣费吗? ​

是否计费属于产品契约;缓存命中不能绕过鉴权、配额或去重记账。

易混淆点 ​

用了缓存不等于解决了穿透、击穿和一致性所有问题。

进一步举证 ​

  • 补齐缓存位置、键、TTL、容量和更新策略。
  • 准备空结果、热点失效、纠错以及错误响应的处理。

内容来源 ​

用完整回答理解机制,用真实证据解释项目。