Redis 哨兵选举 Leader 的 Raft 算法流程
pren 发布于 2026-09-22
Redis Sentinel(哨兵)是 Redis 的高可用性解决方案,负责监控主从节点、自动故障转移以及通知客户端。在故障转移过程中,多个哨兵需要选出一个 Leader 来执行实际的故障转移操作。这个选举过程借鉴了 Raft 算法中的领导者选举机制。下面详细解析其流程。 一、为...
阅读(23)评论(0)赞 (0)
pren 发布于 2026-09-22
Redis Sentinel(哨兵)是 Redis 的高可用性解决方案,负责监控主从节点、自动故障转移以及通知客户端。在故障转移过程中,多个哨兵需要选出一个 Leader 来执行实际的故障转移操作。这个选举过程借鉴了 Raft 算法中的领导者选举机制。下面详细解析其流程。 一、为...
阅读(23)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Linux 内核面试中,中断处理机制是一个高频考点。面试官通常会从“中断上半部与下半部的区别”切入,再逐步深入到 tasklet、工作队列等具体实现机制。如果你只停留在“上半部处理紧急事务,下半部处理耗时操作”这种粗粒度理解上,往往很难通过大厂的内核岗位面试。本文将从设计动机...
阅读(23)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Linux 运维与后端开发面试中,定时任务调度是一个高频考点。很多候选人能熟练写出 crontab e 的语法,但当面试官追问“systemd timer 和 crontab 有什么区别”“at 适合什么场景”时,往往答得不够系统。本文从面试回答的角度,把这三者的调度模型、适...
阅读(22)评论(0)赞 (0)
pren 发布于 2026-09-22
当单表数据量逼近千万级、单库连接数频繁触顶时,分库分表就不再是“要不要做”的问题,而是“怎么做、用什么做”的问题。面试中,这个话题几乎是大厂后端岗位的必考题,考察点从方案选型一直延伸到分布式事务与扩容。本文从面试视角梳理常见方案,并给出 ShardingSphere 的实战思路。...
阅读(19)评论(0)赞 (0)
pren 发布于 2026-09-22
在 MySQL 的面试中,索引相关问题几乎从未缺席,而“索引基数”和“选择性”这两个概念,往往是区分初级和高级开发者的分水岭。很多人能背出“索引可以加快查询”,但当被问到“为什么这个索引没被用上”或者“为什么索引区分度低反而更慢”时,就说不清楚了。本文从面试实战角度出发,把这几个...
阅读(18)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Redis 面试中,有一个问题几乎成了必考题:“Redis Cluster 为什么选择 16384 个哈希槽,而不是 65536 个?”很多人能背出答案——“因为心跳包太大”,但再往下追问一层,就答不上来了。这篇文章从设计权衡的角度,把这个数字背后的逻辑讲清楚。 先理解哈希槽...
阅读(20)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Linux 内核面试中,RCU(ReadCopy Update)是一个高频且容易拉开区分度的话题。很多候选人能说出“读多写少”四个字,但一旦被追问“为什么读写可以并发”“宽限期到底在等什么”“什么时候不能用 RCU”,回答就开始模糊。本文从面试表达的角度,梳理一套由浅入深、能...
阅读(21)评论(0)赞 (0)
pren 发布于 2026-09-22
在 MySQL 面试中,COUNT()、COUNT(1) 和 COUNT(字段) 的性能差异是一个高频考点。很多开发者对此存在误解,比如认为 COUNT(1) 比 COUNT() 快,或者 COUNT() 会全表扫描导致性能最差。事实究竟如何?本文将从底层原理、执行计划和实践建议...
阅读(20)评论(0)赞 (0)
pren 发布于 2026-09-22
日志排查是 Linux 运维和开发岗位面试中的高频考点,面试官通常不会只问你“怎么查看日志”,而是会通过具体场景考察你对命令组合的掌握程度,以及对 systemd 日志体系的理解深度。本文从实战角度出发,梳理常见的命令组合和 journalctl 的高级用法,帮助你从容应对这类面...
阅读(21)评论(0)赞 (0)
pren 发布于 2026-09-22
在 MySQL 面试中,死锁是一个高频且容易拉开差距的考点。很多候选人对死锁的理解停留在“两个事务互相等待对方持有的锁”这一层面,但面试官往往希望听到更系统的回答:死锁产生的四个必要条件是什么?InnoDB 在死锁发生时做了什么?如何通过日志和命令定位死锁?以及在业务设计中如何从...
阅读(19)评论(0)赞 (0)