面试真题

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

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

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

按难度

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

难度:中等468 道 · 点击进入查看参考答案

中等数据库
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. 高频只读允许不一致用本地…
🎤 百度
中等数据库
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指令,在更新时比对历史值,若被改则失败。适用场景:悲观锁用于高竞争、…
🎤 京东
题目整理自公开面经,答案由校招宝自研生成,仅供参考