面灵AI

【杭州Java社招一面】Redis、线程池、线上问题排查

时间
2026-08
来源
牛客网

《面试题目》

  1. 看过我上一篇帖子的小伙伴知道,我最近是学agent相关的内容的。上周更新了下boss的简历,就有hr邀约面了。我自己是没主动去投递,一方面是因为我做的agent的项目还相当于mvp阶段,我知道这个复杂度还不够深,我也是想着边面边完善的。另一方面主动投递的话,如果刚好一周内有太多面试,对于还在职干活的我来说也确实忙不过来。这一家面试,是杭州Java岗社招的第一轮技术面。以下是问题记录以及我的一点总结。
  2. 自我介绍。
  3. 介绍最近投入时间比较多的项目。
  4. 针对项目提了方案设计的问题。
  5. 缓存怎么做的,用的什么数据结构?
  6. 消息怎么做的,传递什么内容,怎么找到对应的缓存?
  7. 为什么选Redis?
  8. 如果服务挂了,Redis持久化还有意义吗?
  9. Redis占用内存多大?单机还是集群?
  10. Redis持久化怎么做的,什么时候触发?
  11. set x 1 命令执行10万次,aof文件里面有多少条?
  12. Redis读写流程哪个阶段最耗时?
  13. Redis单机和集群有什么区别,迁移需要调整什么?
  14. 线程池的基本流程?
  15. 如何判断核心线程数是否已满?
  16. 核心线程的创建在并发下怎么保证不超过coresiz

《参考解析》

  1. Redis常用于缓存、分布式锁和计数。缓存与数据库更新通常采用“先写数据库、再删除缓存”,并通过重试、延时双删或消息补偿处理删除失败。
  2. 并发问题应先明确共享状态和一致性边界,再选择锁、CAS或队列。线程池需要根据任务是CPU密集还是IO密集设置核心线程数、队列容量和拒绝策略,并监控活跃数与队列长度。
  3. Agent或RAG链路应记录工具调用、检索证据和失败原因;对非法参数、路由错误和超时设置校验、重试上限与可观测日志,避免把模型输出直接当作可信结果。