正在打开页面…

面试题:后端

后端工程师岗位相关的接口设计、服务端基础、并发、存储和稳定性面试准备。

缓存和数据库分别承担什么角色,哪一方才是业务事实的最终来源?

数据库负责保存可追溯的业务事实,缓存负责在可接受的时效范围内降低读取成本;缓存命中不应被当成唯一事实依据。

缓存与中间件后端中频题

Cache Aside 的读写流程是什么,为什么缓存未命中不能直接把空结果永久写入?

Cache Aside 由应用控制缓存读写:读未命中时回源并回填,写入时更新事实来源后失效缓存;空值也需要短 TTL 和明确的不存在语义。

缓存与中间件后端中频题

Read Through、Write Through、Write Behind 与 Cache Aside 分别适合什么一致性和性能要求?

四种模式的差异在于谁负责回源和写入,以及写入是否允许异步落盘;选型要先确定数据丢失与读旧值是否可接受。

缓存与中间件后端中频题

缓存 TTL 应按业务时效、数据来源还是内存压力设置,为什么不能统一配一个时长?

TTL 是业务可接受陈旧度、数据更新频率和缓存容量之间的取舍,不同对象需要不同失效策略。

缓存与中间件后端中频题

过期、淘汰和持久化分别影响缓存的什么行为,三者为什么不能混为一谈?

过期由 TTL 决定 Key 何时失效,淘汰由内存压力决定先删谁,持久化决定重启后的恢复能力;三者解决的是不同问题。

缓存与中间件后端中频题

缓存穿透、缓存击穿、缓存雪崩分别如何发生,修复路径有什么不同?

穿透是请求不存在的数据,击穿是热点 Key 失效瞬间回源,雪崩是大量 Key 或缓存集群同时不可用;根因不同,保护手段也不同。

缓存与中间件后端中频题

空值缓存、布隆过滤器和参数校验分别怎样缓解缓存穿透,各自有什么误判或维护成本?

三种手段分别处理无效请求、确认不存在的数据和海量集合的快速预筛;应按攻击方式和数据变更频率组合,而不是互相替代。

缓存与中间件后端中频题

热点 Key 失效时,互斥重建、逻辑过期和后台预热如何取舍?

热点数据重建要在最新性、等待时间和回源压力之间取舍:互斥重建保守,逻辑过期可读旧值,预热适合可预知热点。

缓存与中间件后端中频题

热 Key 和大 Key 分别怎样发现,会对延迟、网络和集群倾斜造成什么影响?

热 Key 的问题是访问集中,大 Key 的问题是单次传输与操作过大;两者都会造成节点倾斜,但治理方式不同。

缓存与中间件后端中频题

更新数据库和删除缓存的顺序应怎样安排,失败时会留下哪些短暂不一致?

常见做法是先提交数据库,再删除缓存;它不能消灭所有并发窗口,但能让缓存最终从已提交事实中重建。

缓存与中间件后端中频题