面试真题

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

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

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

按难度

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

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

中等数据库
Redis缓存雪崩是什么,如何解决和预防
结论:缓存雪崩指大量key同时失效或Redis宕机致请求直击数据库瘫痪。解决:1. 过期时间加随机值错开;2. Redis高可用(哨兵/集群);3. 熔断限流降级保护DB;4. 缓存预热;5. 互斥锁重建缓存。预防:监控…
🎤 滴滴
中等数据库
Redis自旋锁如何实现?
结论:利用Redis单线程原子命令SET key value NX PX timeout加锁,获取锁失败则循环重试(自旋),并设置过期时间防死锁。原理:加锁使用SET lock:resource uuid NX PX 3…
🎤 字节跳动
中等数据库
Redis你知道的持久化策略,具体实现?
结论:Redis持久化主要有RDB和AOF两种方式,RDB快照、AOF日志;RDB实现:fork子进程将内存数据以二进制保存到dump.rdb,按save配置触发,优点紧凑恢复快,缺点可能丢失最后一次快照后数据;AOF实…
🎤 阿里巴巴
中等数据库
Redis如何实现分布式锁?除了setnx还有其他方法吗?
结论:Redis分布式锁常用SETNX,但有其他更优方法;除SETNX外,推荐SET key value NX PX milliseconds原子命令(Redis 2.6+)避免非原子加过期导致死锁;Redlock算法基…
🎤 字节跳动
中等数据库
redis三大缓存问题和解决方案
结论:Redis三大缓存问题是穿透、击穿、雪崩,解决方案不同;穿透指查询不存在数据导致缓存无效请求直达数据库,用布隆过滤器拦截非法key或缓存空对象设短过期;击穿指热点key过期瞬间并发打DB,采用分布式锁单线程重建或热…
🎤 百度
中等数据库
Redis线程安全问题如何解决?
结论:Redis服务器单线程执行命令天然线程安全,客户端多线程需规范使用;内部单线程串行化命令无竞态条件,自身安全;若客户端多线程共享同一连接会导致命令交错,应使用连接池或同步块;6.0多线程IO仅网络读写,执行阶段单线…
🎤 读书郎
中等数据库
缓存数据量很大,达到内存放不下,怎么解决?
结论:采用分布式缓存集群、多级缓存、淘汰压缩、冷热分离。原理:单节点内存受限,用Redis Cluster分片到多机;本地缓存+分布式减轻远端压力;设LRU/LFU淘汰及TTL;value用protobuf压缩;冷数据落…
🎤 百度
中等数据库
缓存雪崩 / 穿透 / 击穿
结论:雪崩指大量key同时失效或缓存宕机压垮DB;穿透指查不存在数据绕过缓存;击穿指热点key失效瞬间高并发打DB。解决:雪崩用过期加随机、集群高可用、限流;穿透用布隆过滤器、缓存空对象短TTL;击穿用互斥锁或逻辑过期。…
🎤 腾讯
中等数据库
乐观锁和悲观锁的区别与使用场景?
结论:悲观锁操作前加锁,乐观锁提交时校验。核心区别:1)加锁时机:悲观锁先加锁再操作,乐观锁不加锁;2)冲突处理:悲观锁阻塞等待,乐观锁回滚或重试;3)性能:悲观锁开销大但安全,乐观锁开销小但可能自旋。原理:悲观锁依赖数…
🎤 阿里巴巴
中等数据库
乐观锁和悲观锁的原理与适用场景?
结论:悲观锁基于加锁协议,乐观锁基于冲突检测。原理:悲观锁利用数据库锁(行锁、表锁)或内存锁(mutex)在事务开始即独占资源;乐观锁通过版本戳或CAS指令,在更新时比对历史值,若被改则失败。适用场景:悲观锁用于高竞争、…
🎤 京东
中等数据库
MVCC 是什么?
结论:MVCC(多版本并发控制)是数据库通过数据多版本实现非锁定读、提升并发的机制。原理:每行记录附隐藏事务ID与回滚指针,修改时生成新版本链(依托 undo log)。读事务依据隔离级别建 ReadView,只读取提交…
🎤 腾讯
中等数据库
User表分表处理后如何根据字段查找到某条数据在哪张表
结论:需依赖分片键和分片路由规则定位物理表。核心要点:若查询条件包含分片键(如user_id),直接应用分片算法计算表名;若不含分片键,需遍历所有分表或借助额外路由表。原理:常见分片策略有哈希取模(user_id % N…
🎤 百度
困难数据库
跳表怎么做并发的?以RocksDB为例阐述
结论:跳表并发多采用无锁或细粒度锁,RocksDB跳表读无锁、写用原子操作+内存屏障,允许并发读和单写或有限并发写。原理:RocksDB MemTable跳表实现中,查询完全无锁遍历;插入时,从底向上插入,使用std::…
🎤 腾讯
困难数据库
Redis 和 MySQL 如何保证一致性?
常用Cache Aside Pattern(旁路缓存)保证最终一致:读先缓存未命中读库回写;写先更新MySQL再删Redis缓存(而非更新缓存,避免脏数据)。问题:删缓存失败或并发读写不一致。解决:1.延迟双删(更新库-…
🎤 腾讯
‹ 上一页第 6 / 6 页
题目整理自公开面经,答案由校招宝自研生成,仅供参考