数据库面试题

主从如何做到故障自动切换?

面试数据库
参考答案
  1. 先明确题目里的核心概念:主从如何做到故障自动切换。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:主从如何做到故障自动切换。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库面试题

主从切换如何减少数据丢失?

面试数据库
参考答案
  1. 先明确题目里的核心概念:主从切换如何减少数据丢失。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:主从切换如何减少数据丢失。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库面试题

如何应对主从数据不一致?

面试数据库
参考答案
  1. 先明确题目里的核心概念:如何应对主从数据不一致。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:如何应对主从数据不一致。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库面试题

主从复制中两个 Buffer(replication buffer 、repl backlog buffer)有什么区别?

面试数据库
参考答案
  1. 计算机基础题要先给定义,再讲关键机制,最后联系工程场景。
  2. 进程线程可以从资源隔离、调度单位、上下文切换、通信方式和故障影响对比。
  3. 网络题要覆盖连接建立、可靠性、拥塞/流量控制、状态码、长连接、TLS 和常见性能优化。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 计算机基础题要先给定义,再讲关键机制,最后联系工程场景。 2. 进程线程可以从资源隔离、调度单位、上下文切换、通信方式和故障影响对比。 3. 网络题要覆盖连接建立、可靠性、拥塞/流量控制、状态码、长连接、TLS 和常见性能优化。 容易被追问: - TIME_WAIT 为什么需要等待? - HTTPS 握手过程是什么? 注意事项: - 不要只背 OSI 七层,要落到 TCP/HTTP 的真实问题。
数据库面试题

Redis 是同步复制还是异步复制?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库面试题

主从复制架构中,过期key如何处理?

面试数据库
参考答案
  1. 先明确题目里的核心概念:主从复制架构中,过期key如何处理。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:主从复制架构中,过期key如何处理。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库面试题

怎么判断 Redis 某个节点是否正常工作?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库面试题

Redis主从节点时长连接还是短连接?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 实战

如何用 Redis 实现分布式锁的?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 实战

Redis 事务支持回滚吗?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 实战

Redis 管道有什么用?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 实战

Redis 的大 key 如何处理?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 实战

Redis 如何实现延迟队列?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 缓存设计

如何保证缓存和数据库数据的一致性?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 缓存设计

说说常见的缓存更新策略?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 缓存设计

如何设计一个缓存策略,可以动态缓存热点数据呢?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 缓存设计

如何避免缓存雪崩、缓存击穿、缓存穿透?

面试数据库
参考答案
  1. 先把三类问题定义清楚:穿透是查不存在的数据,击穿是热点 key 失效,雪崩是大量 key 同时失效或 Redis 整体不可用。
  2. 穿透用参数校验、布隆过滤器和空值短 TTL 缓存;击穿用互斥锁、逻辑过期、热点预热;雪崩用过期时间加随机抖动、多级缓存、限流降级和 Redis 高可用。
  3. 落到项目里要补充监控指标:命中率、热点 key、回源 QPS、Redis 延迟和失败率,避免只讲概念。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先把三类问题定义清楚:穿透是查不存在的数据,击穿是热点 key 失效,雪崩是大量 key 同时失效或 Redis 整体不可用。 2. 穿透用参数校验、布隆过滤器和空值短 TTL 缓存;击穿用互斥锁、逻辑过期、热点预热;雪崩用过期时间加随机抖动、多级缓存、限流降级和 Redis 高可用。 3. 落到项目里要补充监控指标:命中率、热点 key、回源 QPS、Redis 延迟和失败率,避免只讲概念。 容易被追问: - 如果热点 key 重建很慢怎么办? - 布隆过滤器误判会带来什么影响? 注意事项: - 不要把击穿和雪崩混为一谈。 - 不要只说加缓存,必须说明过期、并发和回源保护。
数据库Redis 过期删除与内存淘汰

LRU 算法和 LFU 算法有什么区别?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 过期删除与内存淘汰

Redis 内存淘汰策略有哪些?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 过期删除与内存淘汰

Redis 内存满了,会发生什么?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 过期删除与内存淘汰

Redis 主从模式中,对过期键会如何处理?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 过期删除与内存淘汰

Redis 持久化时,对过期键会如何处理的?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 过期删除与内存淘汰

Redis 使用的过期删除策略是什么?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 集群

集群脑裂导致数据丢失怎么办?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 集群

Redis 如何实现服务高可用?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 持久化

为什么会有混合持久化?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 持久化

RDB 快照是如何实现的呢?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 持久化

AOF 日志是如何实现的?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 持久化

Redis 如何实现数据不丢失?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 线程模型

Redis 6.0 之后为什么引入了多线程?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 线程模型

Redis 6.0 之前为什么使用单线程?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 线程模型

Redis 采用单线程为什么还这么快?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 线程模型

Redis 单线程模式是怎样的?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 线程模型

Redis 是单线程吗?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 数据结构

五种常见的 Redis 数据类型是怎么实现?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库Redis 数据结构

Redis 数据类型以及使用场景分别是什么?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库认识 Redis

为什么用 Redis 作为 MySQL 的缓存?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库认识 Redis

Redis 和 Memcached 有什么区别?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库认识 Redis

什么是 Redis?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

布隆过滤器原理介绍一下

面试数据库
参考答案
  1. 先明确题目里的核心概念:布隆过滤器原理介绍一下。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:布隆过滤器原理介绍一下。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库场景

缓存雪崩、击穿、穿透是什么?怎么解决?

面试数据库
参考答案
  1. 先把三类问题定义清楚:穿透是查不存在的数据,击穿是热点 key 失效,雪崩是大量 key 同时失效或 Redis 整体不可用。
  2. 穿透用参数校验、布隆过滤器和空值短 TTL 缓存;击穿用互斥锁、逻辑过期、热点预热;雪崩用过期时间加随机抖动、多级缓存、限流降级和 Redis 高可用。
  3. 落到项目里要补充监控指标:命中率、热点 key、回源 QPS、Redis 延迟和失败率,避免只讲概念。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先把三类问题定义清楚:穿透是查不存在的数据,击穿是热点 key 失效,雪崩是大量 key 同时失效或 Redis 整体不可用。 2. 穿透用参数校验、布隆过滤器和空值短 TTL 缓存;击穿用互斥锁、逻辑过期、热点预热;雪崩用过期时间加随机抖动、多级缓存、限流降级和 Redis 高可用。 3. 落到项目里要补充监控指标:命中率、热点 key、回源 QPS、Redis 延迟和失败率,避免只讲概念。 容易被追问: - 如果热点 key 重建很慢怎么办? - 布隆过滤器误判会带来什么影响? 注意事项: - 不要把击穿和雪崩混为一谈。 - 不要只说加缓存,必须说明过期、并发和回源保护。
数据库场景

如何保证 redis 和 mysql 数据缓存一致性问题?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

如何解决热key问题?

面试数据库
参考答案
  1. 先明确题目里的核心概念:如何解决热key问题。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:如何解决热key问题。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库场景

什么是热key?

面试数据库
参考答案
  1. 先明确题目里的核心概念:什么是热key。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:什么是热key。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库场景

Redis大key如何解决?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

大Key问题的缺点?

面试数据库
参考答案
  1. 先明确题目里的核心概念:大Key问题的缺点。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:大Key问题的缺点。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库场景

Redis的大Key问题是什么?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

Redis分布式锁的实现原理?什么场景下用到分布式锁?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

Redis除了缓存,还有哪些应用?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

redis应用场景是什么?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

本地缓存和Redis缓存的区别?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

为什么redis比mysql要快?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库场景

为什么使用redis?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库集群

cluster集群客户端是怎样知道该访问哪个分片的?

面试数据库
参考答案
  1. 先明确题目里的核心概念:cluster集群客户端是怎样知道该访问哪个分片的。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:cluster集群客户端是怎样知道该访问哪个分片的。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库集群

Redis集群的模式了解吗 优缺点了解吗

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库集群

哨兵机制的选主节点的算法介绍一下

面试数据库
参考答案
  1. 算法题回答先复述问题和约束,再说明核心思路、状态定义或数据结构选择,最后给复杂度和边界情况。
  2. 如果是链表常用快慢指针、虚拟头节点;树题常用递归、层序遍历;动态规划要讲状态、转移、初始化和遍历顺序。
  3. 面试时要主动说测试用例:空输入、单元素、重复值、极值和不合法参数。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 算法题回答先复述问题和约束,再说明核心思路、状态定义或数据结构选择,最后给复杂度和边界情况。 2. 如果是链表常用快慢指针、虚拟头节点;树题常用递归、层序遍历;动态规划要讲状态、转移、初始化和遍历顺序。 3. 面试时要主动说测试用例:空输入、单元素、重复值、极值和不合法参数。 容易被追问: - 能否把空间复杂度优化? - 如果数据量很大怎么处理? 注意事项: - 不要直接写代码不讲思路。 - 不要漏掉时间复杂度和边界条件。
数据库集群

哨兵机制原理是什么?

面试数据库
参考答案
  1. 先明确题目里的核心概念:哨兵机制原理是什么。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:哨兵机制原理是什么。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库集群

redis主从和集群可以保证数据一致性吗 ?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库集群

Redis主从同步中的增量和完全同步怎么实现?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库缓存淘汰和过期删除

那为什么我不过期立即删除?

面试数据库
参考答案
  1. 先明确题目里的核心概念:那为什么我不过期立即删除。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:那为什么我不过期立即删除。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库缓存淘汰和过期删除

Redis的缓存失效会不会立即删除?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库缓存淘汰和过期删除

介绍一下Redis过期删除策略

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库缓存淘汰和过期删除

介绍一下Redis 内存淘汰策略

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库缓存淘汰和过期删除

过期删除策略和内存淘汰策略有什么区别?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库日志

Redis有哪2种持久化方式?分别的优缺点是什么?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库事务

除了lua有没有什么也能保证redis的原子性?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库事务

如何实现redis 原子性?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库线程模型

Redis的网络模型是怎样的?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库线程模型

Redis怎么实现的io多路复用?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库线程模型

Redis哪些地方使用了多线程?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库线程模型

Redis为什么快?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库数据结构

redis的Zset,在项目里具体用法是什么?

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库数据结构

String 是使用什么存储的?为什么不用 c 语言中的字符串?

面试数据库
参考答案
  1. 算法题回答先复述问题和约束,再说明核心思路、状态定义或数据结构选择,最后给复杂度和边界情况。
  2. 如果是链表常用快慢指针、虚拟头节点;树题常用递归、层序遍历;动态规划要讲状态、转移、初始化和遍历顺序。
  3. 面试时要主动说测试用例:空输入、单元素、重复值、极值和不合法参数。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 算法题回答先复述问题和约束,再说明核心思路、状态定义或数据结构选择,最后给复杂度和边界情况。 2. 如果是链表常用快慢指针、虚拟头节点;树题常用递归、层序遍历;动态规划要讲状态、转移、初始化和遍历顺序。 3. 面试时要主动说测试用例:空输入、单元素、重复值、极值和不合法参数。 容易被追问: - 能否把空间复杂度优化? - 如果数据量很大怎么处理? 注意事项: - 不要直接写代码不讲思路。 - 不要漏掉时间复杂度和边界条件。
数据库数据结构

哈希表扩容的时候,有读请求怎么查?

面试数据库
参考答案
  1. HashMap 基于数组、链表和红黑树,先 hash 定位桶位,冲突后链表或树化存储。
  2. 扩容通常按负载因子触发,容量翻倍后元素要重新分布;JDK 8 之后链表过长且数组足够大时会树化。
  3. 线程安全场景不能用 HashMap,ConcurrentHashMap 通过更细粒度的并发控制提升并发读写能力。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. HashMap 基于数组、链表和红黑树,先 hash 定位桶位,冲突后链表或树化存储。 2. 扩容通常按负载因子触发,容量翻倍后元素要重新分布;JDK 8 之后链表过长且数组足够大时会树化。 3. 线程安全场景不能用 HashMap,ConcurrentHashMap 通过更细粒度的并发控制提升并发读写能力。 容易被追问: - 为什么树化阈值不是很小? - ConcurrentHashMap 读为什么快? 注意事项: - 不要只说 HashMap 线程不安全,要说明并发写可能导致数据覆盖或结构异常。
数据库数据结构

哈希表是怎么扩容的?

面试数据库
参考答案
  1. HashMap 基于数组、链表和红黑树,先 hash 定位桶位,冲突后链表或树化存储。
  2. 扩容通常按负载因子触发,容量翻倍后元素要重新分布;JDK 8 之后链表过长且数组足够大时会树化。
  3. 线程安全场景不能用 HashMap,ConcurrentHashMap 通过更细粒度的并发控制提升并发读写能力。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. HashMap 基于数组、链表和红黑树,先 hash 定位桶位,冲突后链表或树化存储。 2. 扩容通常按负载因子触发,容量翻倍后元素要重新分布;JDK 8 之后链表过长且数组足够大时会树化。 3. 线程安全场景不能用 HashMap,ConcurrentHashMap 通过更细粒度的并发控制提升并发读写能力。 容易被追问: - 为什么树化阈值不是很小? - ConcurrentHashMap 读为什么快? 注意事项: - 不要只说 HashMap 线程不安全,要说明并发写可能导致数据覆盖或结构异常。
数据库数据结构

介绍一下 Redis 中的 listpack

面试数据库
参考答案
  1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。
  2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。
  3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. Redis 快主要因为内存访问、单线程事件循环避免锁竞争、高效数据结构和 IO 多路复用。 2. 持久化有 RDB 和 AOF:RDB 适合快照备份、恢复快但可能丢数据;AOF 记录写命令,数据更完整但文件更大。 3. 生产问题要覆盖热 key、大 key、缓存一致性、淘汰策略、主从复制和哨兵/集群高可用。 容易被追问: - 如何发现和治理大 key? - 缓存与数据库一致性怎么保证? 注意事项: - 不要说 Redis 单线程就一定不会阻塞,大 key、慢命令和持久化都可能造成抖动。
数据库数据结构

压缩列表是怎么实现的?

面试数据库
参考答案
  1. 先明确题目里的核心概念:压缩列表是怎么实现的。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:压缩列表是怎么实现的。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库数据结构

Redis为什么使用跳表而不是用B+树?

面试数据库
参考答案
  1. B+ 树适合磁盘索引,因为非叶子节点只保存 key 和指针,单页能放更多索引项,树高更低,随机 I/O 更少。
  2. 所有数据在叶子节点,且叶子节点有链表,范围查询和排序扫描更稳定;哈希索引虽然等值快,但不支持范围和有序遍历。
  3. 面试可以结合 InnoDB:聚簇索引叶子节点存整行,二级索引叶子节点存主键,回表就是用主键再查聚簇索引。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. B+ 树适合磁盘索引,因为非叶子节点只保存 key 和指针,单页能放更多索引项,树高更低,随机 I/O 更少。 2. 所有数据在叶子节点,且叶子节点有链表,范围查询和排序扫描更稳定;哈希索引虽然等值快,但不支持范围和有序遍历。 3. 面试可以结合 InnoDB:聚簇索引叶子节点存整行,二级索引叶子节点存主键,回表就是用主键再查聚簇索引。 容易被追问: - 什么情况下会回表? - 联合索引为什么有最左前缀? 注意事项: - 不要只说 B+ 树快,要说快在哪里:页大小、树高、I/O 和范围查询。
数据库数据结构

跳表是怎么设置层高的?

面试数据库
参考答案
  1. 先明确题目里的核心概念:跳表是怎么设置层高的。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:跳表是怎么设置层高的。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。
数据库数据结构

跳表是怎么实现的?

面试数据库
参考答案
  1. 先明确题目里的核心概念:跳表是怎么实现的。面试回答要先给定义,再说明原理或机制。
  2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。
  3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。
展开完整答法
这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在数据库里的可落地理解。 答题要点: 1. 先明确题目里的核心概念:跳表是怎么实现的。面试回答要先给定义,再说明原理或机制。 2. 补充工程落地点:它解决什么问题、适合什么场景、有什么代价,以及线上如何监控或排查。 3. 最后主动延伸到边界条件、失败场景和与相近方案的对比,体现不是只背结论。 容易被追问: - 如果放到你的项目里,你会如何设计和验证? - 这个方案的瓶颈和替代方案是什么? 注意事项: - 不要只给一句定义,面试官通常会继续追问原理、边界和工程实践。 - 不要忽略适用场景和代价,很多题考察的是取舍能力。