全程15分钟,贴近实际业务,很多没答出来。1.你们产品的DAU大概是多少?200w以上2.你们用的什么MySQL引擎?innodb的特点?innodb,支持行级锁。面试官补充:支持ACID事务,实现四种隔离级别,默认是可重复读,MVCC。3.MySQL中你们用的哪种锁?(感觉这个问题有点奇怪)?行锁有:记录锁、表锁、全局锁。4.你们MySQL的单张表数据量大概是多少?500w行左右(不知道这样说对不对)。一般2000万行数据就要做分库分表,实际我们到不了这个数据量就要分库分表。5.你们在业务中主要接触的是什么库?能不能说一下你们项目中MySQL分库分表的思路?用户库。没答出来。面试官补充:按userid哈希、按字段拆分等6.接口响应时间怎么测出来的?jmeter,在生产环境下测试的。7.redis你们用的数据结构是哪种?redis数据机构有哪些?string。还有hash、zset等。8.redis中如何保证两个操作的原子性?lua脚本。面试官补充:事务。9.如果现在有一万条UUID-timestamp类型的数据,你是打算存zset还是hash?hash。思路没有回答出来。10.mq,你们在项目中怎么保证消息不丢的?配置了哪些持久化机制?消息持久化。我们配置了队列-消费者持久化。没有配置生产者-交换机持久化,因为资源损耗较高。