面试真题

技术面 + 非技术面高频问题 · 企业真题标题 + 校招宝自研参考答案
面试真题
2508 道
技术岗
641 道
非技术岗
1867 道
当前筛选
114 道

按赛道技术岗以技术方向细分;非技术岗按「结构化 / 半结构化 / 无领导 / HR / 职能」细分

按方向/形式点选即筛,再点「全部」还原

按难度

按企业点选查看该公司全部题目

技术岗 · 分类:数据库114 道 · 点击进入查看参考答案

中等数据库
MySQL为什么发生死锁,如何解决?
结论:死锁由两个及以上事务循环等待对方持有的锁导致,MySQL会自动检测并回滚。原因:事务A持有资源1锁请求资源2,事务B持有资源2锁请求资源1,互相等待。解决与预防:1.统一资源访问顺序(如按主键ID升序更新),破坏循…
🎤 阿里巴巴
中等数据库
Mysql中隔离级别 怎么解决幻读
结论:InnoDB在可重复读(RR)级别通过MVCC快照读和Next-Key Lock当前读解决幻读;串行化通过完全加锁解决。原理:幻读指同一事务内多次范围查询因其他事务插入新行导致结果集变化。RR下,普通SELECT为…
🎤 百度
中等数据库
Mysql中四大特性, 原子性是怎么实现的,持久性是什么实现的
结论:MySQL四大特性为ACID;原子性由undo log实现,持久性由redo log实现。原理:原子性指事务要么全做要么全不做,InnoDB在事务修改前记录undo log(逻辑日志,记录反向操作),回滚时按und…
🎤 百度
中等数据库
Redis - MySQL 一致性方案
结论:常用Cache Aside(旁路缓存)模式保证最终一致:写时更新MySQL后删除Redis缓存;读时缓存未命中查DB并回写。核心要点:1. 写策略:先删缓存再更新DB,或更新DB后删缓存(推荐),配合延迟双删降低脏…
🎤 腾讯
中等数据库
Redis 的 key 已写入,但消费者宕机了怎么办?
结论:取决于Redis使用的数据结构;若用List或Stream则消息不丢,Pub/Sub会丢。要点:1) List队列(LPUSH/BRPOP),key已写入则消息存于内存列表中,消费者宕机重启后可继续弹出,但需防止超…
🎤 腾讯
中等数据库
Redis 的分布式锁和 Zookeeper 的分布式锁的区别
结论:Redis锁基于内存AP系统,高性能但一致性较弱;Zk锁基于临时顺序节点CP系统,强一致但性能较低。核心差异:1) 实现:Redis用SETNX或Redlock算法加锁,需设置过期时间防死锁;Zk创建临时顺序节点,…
🎤 闪送
中等数据库
Redis 的数据结构有哪些?底层是什么?
核心数据结构:字符串(string)、列表(list)、哈希(hash)、集合(set)、有序集合(zset),以及位图、HyperLogLog、Stream等。底层实现:1.string用SDS(简单动态字符串),支持…
🎤 京东
中等数据库
Redis 分布式锁相关场景及更好方案
分布式锁用于多进程并发控制,如库存扣减、防重复提交;Redis基础方案用SET key value NX PX 实现,值用唯一标识,释放锁用Lua脚本校验避免误删。问题:锁超时业务未完、客户端阻塞导致误删。更好方案:1.…
🎤 百度
中等数据库
Redis 缓存三兄弟
缓存三兄弟指缓存穿透、击穿、雪崩。穿透:查询不存在数据导致直击DB,方案:布隆过滤器拦截非法key、缓存空对象设短TTL;击穿:热点key过期瞬间高并发请求到DB,方案:互斥锁(Redis锁)单线程重建、或逻辑过期时间异…
🎤 网易
中等数据库
Redis 缓存雪崩是什么?怎么解决?
缓存雪崩指大量缓存同时过期或Redis不可用,请求全打数据库致宕机。解决:1.过期时间加随机值(如30分+随机秒)错开失效;2.Redis用Sentinel或Cluster保证高可用;3.服务限流降级返回默认;4.后台定…
🎤 腾讯
中等数据库
Redis 预检成功,数据库扣减失败怎么办?
结论:Redis预检(如扣减库存)成功但数据库扣减失败,必须补偿回滚或保证最终一致,避免库存不准确。核心处理:1.立即回滚Redis操作:数据库事务失败则对Redis执行反向操作(如DECR回加库存);2.若回滚失败,记…
🎤 百度
中等数据库
Redis MySQL数据一致性
结论:Redis与MySQL一致性常用Cache Aside Pattern(旁路缓存)。要点:1.写操作:先更新数据库,再删除缓存(或延迟双删);2.读操作:先读缓存,未命中读DB并回写缓存;3.防并发脏数据:缓存设过…
🎤 腾讯
中等数据库
Redis zset的底层结构:压缩列表和跳表,区别,什么时候使用哪一种,为什么不用红黑树?
结论:zset底层使用ziplist(压缩列表)或skiplist+dict(跳表+字典),按阈值切换。区别与选择:1.ziplist:连续内存存储,省内存,但增删查O(n),当元素数<128且成员值<64字节时使用;2…
🎤 阿里巴巴
中等数据库
Redis的过期键如何处理,有哪些方式,会导致问题吗,如何解决?
结论:Redis采用惰性删除+定期删除结合;过期键处理有定时、惰性、定期三种方式。核心要点:定时删除用定时器立即删键,CPU开销大;惰性删除在访问时检查过期则删,可能导致内存泄漏;定期删除每间隔随机抽部分键删除(默认每秒…
🎤 阿里巴巴
中等数据库
redis的两种发布订阅的实现
结论:Redis发布订阅有两种典型实现:1) 原生PUB/SUB(含频道与模式订阅),基于字典维护订阅链表,消息实时推送但不持久化;2) 基于List或Stream模拟的消息队列式发布订阅,如LPUSH+BLPOP或XA…
🎤 腾讯
中等数据库
Redis的zset的数据结构有哪些?
结论:zset底层由跳表(skiplist)和哈希表组合实现,小数据时用压缩列表(ziplist,Redis 7.0后改listpack)优化。核心要点:哈希表存成员到分值的映射,O(1)查分;跳表按分值排序,支持范围查…
🎤 阿里巴巴
中等数据库
Redis分布式锁的实现
结论:基于SET key value NX PX与Lua脚本实现分布式锁。核心要点:1. 获取锁:SET lock:resource <唯一ID> NX PX 30000,利用Redis单线程互斥;2. 释放锁:Lua脚…
🎤 闪送
中等数据库
Redis分布式锁的实现与优缺点
结论:实现同SET NX PX+Lua释放;优点:高性能、原子操作、过期自动防死锁;缺点:1. 单点故障需Redlock多节点;2. 锁过期但业务未完成导致并发(需看门狗续期);3. 主从异步复制可能丢锁。对比ZooKe…
🎤 读书郎
中等数据库
Redis过期策略,有没有局限性,怎么解决?
结论:Redis采用惰性删除+定期删除。核心:惰性删除在读取时查过期则删;定期删除每100ms抽样20key删过期。局限性:惰性致内存浪费;定期可能漏删且大量过期时CPU尖峰;从库延迟删。解决:1. 过期时间加随机偏移防…
🎤 阿里巴巴
中等数据库
Redis缓存和本地缓存该如何取舍?
结论:按一致性、性能、共享需求取舍。要点:本地缓存(Caffeine)优点:进程内微秒级、无网络;缺点:集群不一致、容量小。Redis优点:集中共享、持久化高可用;缺点:毫秒网络开销。取舍:1. 高频只读允许不一致用本地…
🎤 百度
题目整理自公开面经,答案由校招宝自研生成,仅供参考