Skip to content

面试速答(先看这里)

**一句话结论:**人脸识别SaaS公司、7年工作经验,云平台核心业务开发,架构师,负责了项目0到1搭建

60秒标准回答:

人脸识别SaaS公司、7年工作经验,云平台核心业务开发,架构师,负责了项目0到1搭建

支持1w并发是怎么做的?redis缓存、分库分表、future

如果让你支持 10w 并发,还能做哪些事情?消息队列解耦、打批处理、集群部署、

**答题顺序:**结论 → 原理/机制 → 关键流程 → 场景与取舍 → 易错点

回答主线:

  • **要点1:**缓存用在什么场景?
  • **要点2:**近端缓存是什么?
  • **要点3:**缓存和数据库的一致性该如何解决?
  • **要点4:**如何实现一个本地缓存呢?
  • **要点5:**Redis 的线程模型是怎样的?

**记忆锚点:**laiyanhong-9tr5c → wwwyuquecom → zwpzru → https → Redis → redis

关键取舍:

  • 接口性能优化方案: 高并发思路: 缓存用在什么场景?
  • 小内存为啥不适合用 G1 呢?

易错提醒:

  • 老年代满了、空间分配担保失败、 什么是空间分配担保?
  • Commit 的时候失败了怎么办?

加分表达:

  • 人脸识别SaaS公司、7年工作经验,云平台核心业务开发,架构师,负责了项目0到1搭建 支持1w并发是怎么做的?
  • redis缓存、分库分表、future 如果让你支持 10w 并发,还能做哪些事情?
  • 消息队列解耦、打批处理、集群部署、 缓存用在什么场景?

追问准备:

  • 人脸识别SaaS公司、7年工作经验,云平台核心业务开发,架构师,负责了项目0到1搭建 支持1w并发是怎么做的?
  • redis缓存、分库分表、future 如果让你支持 10w 并发,还能做哪些事情?
  • 消息队列解耦、打批处理、集群部署、 缓存用在什么场景?
  • 用户的数据变了怎么感知?

​面试者背景 ​

人脸识别SaaS公司、7年工作经验,云平台核心业务开发,架构师,负责了项目0到1搭建

> 支持1w并发是怎么做的?redis缓存、分库分表、future > > 如果让你支持10w并发,还能做哪些事情?消息队列解耦、打批处理、集群部署、 > > 缓存用在什么场景?预热。用户的数据变了怎么感知? > > 一个租户特别大,热点问题怎么解决?缓存的热点问题怎么办?热key拆分、二级缓存。 > > 近端缓存是什么?相比于本地缓存和分布式缓存有什么优缺点?一致性问题如何解决? > > 缓存和数据库的一致性该如何解决?更新数据库、删除缓存、延迟双删?为什么删除缓存而不是更新缓存?除了延迟双删,还有其他保证一致性方案吗?监听Bin log处理 > > 如何实现一个本地缓存呢?map、guava,LRU是什么?LFU如何实现的?为啥要做缓存淘汰? > > Redis相比memcached优势? > > Redis的线程模型是怎样的?多路复用如何实现的?redis所有模块都是单线程的吗?为啥6.0要引入多线程?哪个模块是单线程的?多线程有什么缺点? > > 解决过OOM问题,介绍下过程。如何发现的?dump,如何解决的? > > 堆内存大小多大?8G,垃圾回收器用的是哪个?为什么不用CMS?CMS能降低STW? > > G1 有哪些特点?garbage first,REGION是什么?STW时长如何预测?小内存为啥不适合用G1呢? > > FullGC的触发条件是什么?老年代满了、空间分配担保失败、 > > 什么是空间分配担保? > > Dubbo一次服务调用过程是怎样的? > > 如果让你实现一个dubbo,会考虑用那些技术解决哪些问题? > > Zk的选主过程是怎么样的?zk脑裂的问题? > > Zk可以用来做什么?用在哪些场景中?注册中心、分布式锁、分布式ID、master选举 > > Seata框架用了干什么?分布式事务有哪些方案?TCC详细介绍下。Commit的时候失败了怎么办? > > 架构设计的时候,首先考虑的三个要素是什么?可扩展性、高内聚低耦合、可用性

题目解析 ​

> 支持1w并发是怎么做的?redis缓存、分库分表、future > > 如果让你支持10w并发,还能做哪些事情?消息队列解耦、打批处理、集群部署、

因为简历中他提到负责的业务支持了1W的并发, 所以面试的时候会重点关注,如何抗高并发。

接口性能优化方案:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/izs89qgmcg3wpzrr

高并发思路:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/famqumtrg9h7hqfn

> 缓存用在什么场景?预热。用户的数据变了怎么感知? > > 一个租户特别大,热点问题怎么解决?缓存的热点问题怎么办?热key拆分、二级缓存。 > > 近端缓存是什么?相比于本地缓存和分布式缓存有什么优缺点?一致性问题如何解决? > > 缓存和数据库的一致性该如何解决?更新数据库、删除缓存、延迟双删?为什么删除缓存而不是更新缓存?除了延迟双删,还有其他保证一致性方案吗?监听Bin log处理 > > 如何实现一个本地缓存呢?map、guava,LRU是什么?LFU如何实现的?为啥要做缓存淘汰?

热点问题:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/nsf7xfmriieqha41

缓存一致性问题:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/oowolzkobk41avk1

本地缓存:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/sxhtier20kbcls3s

LRU:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/gg6mo9oivgn3gpf4

LRU实现:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/hhaex6s759p8c5x9

> Redis相比memcached优势? > > Redis的线程模型是怎样的?多路复用如何实现的?redis所有模块都是单线程的吗?为啥6.0要引入多线程?哪个模块是单线程的?多线程有什么缺点?

Redis&Memcached:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/feh724aw0wa7puer

Redis线程模型:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/odgt82n4poam590d

Redis多线程:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/or2hgaba51g04ytr

> 解决过OOM问题,介绍下过程。如何发现的?dump,如何解决的?

OOM问题排查:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/oecw9lcknmhgn24h

> 堆内存大小多大?8G,垃圾回收器用的是哪个?为什么不用CMS?CMS能降低STW? > > G1 有哪些特点?garbage first,REGION是什么?STW时长如何预测?小内存为啥不适合用G1呢? > > FullGC的触发条件是什么?老年代满了、空间分配担保失败、 > > 什么是空间分配担保?

垃圾回收器区别:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/ie9e3xue7eb8u1h7

G1:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/rpfz9mm33fhyyagu

FullGC触发条件&分配担保:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/ga7cskgsan9qfqcz

> Dubbo一次服务调用过程是怎样的? > > 如果让你实现一个dubbo,会考虑用那些技术解决哪些问题?

Dubbo调用过程:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/wpqk86wrqd2ezc3o

如何实现一个RPC框架:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/wh5d9nnb95eqwqw5

> Zk的选主过程是怎么样的?zk脑裂的问题? > > Zk可以用来做什么?用在哪些场景中?注册中心、分布式锁、分布式ID、master选举

zk选主:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/etvgryc2f7tw05e9

zk脑裂:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/mm58w1oug7a6ihli

zk使用场景:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/ga36aryb3eg09gfr

> Seata框架用了干什么?分布式事务有哪些方案?TCC详细介绍下。Commit的时候失败了怎么办?

分布式事务:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/bfwb9ednaugso6g1

TCC:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/wp7t094gimyg7t27

> 架构设计的时候,首先考虑的三个要素是什么?可扩展性、高内聚低耦合、可用性

架构设计原则:https://www.yuque.com/laiyanhong-9tr5c/zwpzru/rngt07925ndfkz02

https://www.yuque.com/laiyanhong-9tr5c/zwpzru/yldczeeup0cefyca