Redis Cluster 为什么选择 16384 个哈希槽
pren 发布于 2026-09-22
在 Redis 面试中,有一个问题几乎成了必考题:“Redis Cluster 为什么选择 16384 个哈希槽,而不是 65536 个?”很多人能背出答案——“因为心跳包太大”,但再往下追问一层,就答不上来了。这篇文章从设计权衡的角度,把这个数字背后的逻辑讲清楚。 先理解哈希槽...
阅读(26)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Redis 面试中,有一个问题几乎成了必考题:“Redis Cluster 为什么选择 16384 个哈希槽,而不是 65536 个?”很多人能背出答案——“因为心跳包太大”,但再往下追问一层,就答不上来了。这篇文章从设计权衡的角度,把这个数字背后的逻辑讲清楚。 先理解哈希槽...
阅读(26)评论(0)赞 (0)
pren 发布于 2026-09-22
Redis Cluster 是 Redis 官方提供的分布式解决方案,通过分片(sharding)将数据分散到多个节点上。在集群模式下,客户端访问某个 key 时,可能会被重定向到另一个节点。理解 MOVED 和 ASK 这两种重定向机制的差异,是掌握 Redis Cluster...
阅读(24)评论(0)赞 (0)
pren 发布于 2026-09-22
在分布式系统中,Redis 凭借其高性能和原子性操作,成为实现分布式锁的主流方案之一。然而,一个健壮的分布式锁不仅要解决互斥问题,还必须处理两个核心难题:锁的续期(自动延长过期时间) 和 可重入(同一线程可多次获取同一把锁)。这两点也是面试中高频出现的深度问题。本文将围绕这两个主...
阅读(28)评论(0)赞 (0)
pren 发布于 2026-09-22
在 Redis 的面试中,有一个问题几乎成了必考题:Redis 的 ZSet(有序集合)底层为什么用跳表(skiplist)而不是红黑树? 很多人第一反应是“因为跳表简单”,但面试官想听的显然不止这一句。这个问题背后牵扯到数据结构设计、工程取舍、范围查询效率以及 Redis 作者...
阅读(25)评论(0)赞 (0)
pren 发布于 2026-09-22
很多开发者第一次接触 Redis 时都会产生一个疑问:如今服务器动辄几十核 CPU,Redis 却坚持用单线程处理命令,它凭什么能扛住每秒十万甚至百万级的请求?这个问题在面试中出现频率极高,背后考察的其实是对 Redis 整体架构、I/O 模型和性能优化思路的理解。本文将从常见误...
阅读(27)评论(0)赞 (0)
pren 发布于 2026-09-22
Redlock 是 Redis 作者 antirez 在 2016 年提出的一种分布式锁算法,旨在解决单节点 Redis 锁在故障切换场景下可能丢失锁的问题。然而,这个算法自诞生以来就争议不断,尤其是 Martin Kleppmann 与 antirez 之间的著名论战,让 Re...
阅读(29)评论(0)赞 (0)
pren 发布于 2026-09-22
在分布式系统中,锁是绕不开的话题。Redis 凭借其高性能和简单易用的特性,成为实现分布式锁最常用的方案之一。而 SETNX(SET if Not eXists)命令,作为 Redis 分布式锁的基石,看似简单,实则暗藏玄机。很多人在面试中被问到“如何用 Redis 实现分布式锁...
阅读(29)评论(0)赞 (0)
pren 发布于 2026-09-22
Redis 作为最流行的内存数据库之一,以其极高的读写性能著称。但内存数据在断电或进程崩溃后会全部丢失,因此持久化机制是 Redis 高可用体系中不可或缺的一环。Redis 提供了两种主要的持久化方式:RDB(Redis DataBase)和 AOF(Append Only Fi...
阅读(25)评论(0)赞 (0)
pren 发布于 2026-09-22
在分布式系统中,Redis 通常被用作缓存层来减轻数据库压力、提升读取性能。但一旦引入缓存,就不可避免地面临一个经典难题:当数据同时存在于数据库和 Redis 中时,如何保证两者的数据一致性? 这也是面试中高频出现的考点,本文将系统梳理各种方案及其优缺点。 为什么会出现双写不一致...
阅读(25)评论(0)赞 (0)
pren 发布于 2026-09-22
Redis 的主从复制(MasterSlave Replication)是构建高可用缓存架构的基石。无论是哨兵模式(Sentinel)还是集群模式(Cluster),底层都依赖主从复制来实现数据冗余和故障转移。理解其工作原理,尤其是全量同步的每一个步骤,是面试中高频且区分度较高的...
阅读(29)评论(0)赞 (0)