Redis 的 INCR 达到 64 位有符号整数上限后继续自增会怎样?
围绕“Redis 的 INCR 达到 64 位有符号整数上限后继续自增会怎样”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确会报错且值不变、只能用于有符号 64 位范围。
缓存专题面试题第 6 页,显示第 251–300 题,共找到 355 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“Redis 的 INCR 达到 64 位有符号整数上限后继续自增会怎样”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确会报错且值不变、只能用于有符号 64 位范围。
围绕“Redis 的 INCRBYFLOAT 为什么不适合需要精确小数的金额计算”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明底层按 long double 处理且存在浮点精度风险,金额应改用整数分表示。
围绕“Redis 删除过期 Key 的惰性删除和定期删除分别怎么工作,为什么两者都要”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明访问时检查与后台周期采样互补、平衡 CPU 与内存。
围绕“Redis 内存到达 maxmemory 后会发生什么,没有淘汰策略时写操作会怎样”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明触发淘汰策略、noeviction 下写命令报错。
围绕“批量读写一批 Redis Key 时,MSET/MGET 相比循环 SET/GET 省掉了什么开销”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确减少网络往返次数是主要收益且 MSET 原子。
围绕“Redis 集合为什么天然适合做去重和标签存储”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明成员唯一性与 SADD 幂等带来的去重语义。
围绕“Redis 集合的 intset 和 listpack 编码分别在什么条件下使用”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确纯整数小集合用 intset、小集合用 listpack、超阈值转 hashtable。
围绕“Redis 的 SET key value NX EX 一条命令为什么比 SETNX 加 EXPIRE 更适合加锁”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释两条命令之间存在窗口期导致死锁,而单命令原子执行消除该窗口。
围绕“只用 SETNX 加 DEL 实现 Redis 分布式锁会有哪些缺陷”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出锁无法续期、误删他人锁、无重入等问题。
围绕“Redis 对短字符串用 SETRANGE 写入很大的偏移位置会发生什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确中间空洞以零字节填充且会撑大 Value、警惕 bigkey。
围绕“Redis 的 SINTER、SUNION、SDIFF 分别能解决什么业务问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须对应共同好友、全量标签合并、差集筛选三类场景。
围绕“在线上 Redis 直接跑大集合的 SINTERSTORE 有什么风险,如何规避”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 O(N) 运算阻塞主线程,应限制集合规模或用从库/离线计算。
围绕“判断某用户是否在 Redis 集合中,为什么用 SISMEMBER 而不是取回 SMEMBERS 再查”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 SISMEMBER 服务端 O(1) 而 SMEMBERS 全量传输 O(N)。
围绕“Redis 的 SMOVE 命令适合什么场景,它是原子的吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明源集合删除与目标集合添加一步完成且原子,适合任务状态流转。
围绕“Redis 的 SPOP 和 SRANDMEMBER 都返回随机成员,核心区别和各自用途是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 SPOP 删除元素而 SRANDMEMBER 不删,分别对应消费式抽奖与展示式抽样。
围绕“Redis 的 SRANDMEMBER 传正数和负数 count 时返回结果有什么区别”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明正数不重复返回、负数允许重复且可超过集合大小。
围绕“Redis 字符串为什么能安全存储二进制数据且取长度是 O(1)”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释 SDS 用 len 字段而非 \0 结尾判断长度的设计。
围绕“Redis 单个字符串 Value 最大能存多大,超大 Value 会带来哪些问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 512MB 上限并说明大 Value 对网络传输、阻塞和内存分配的影响。
围绕“Redis SDS 追加内容时的空间预分配和惰性释放是怎么工作的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须说清预分配减少 realloc 次数及惰性释放避免缩短时立即收缩。
围绕“Redis 存一个对象时,JSON 字符串和哈希各自适合什么场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按是否需要字段级读写、TTL 粒度和内存开销做出选型判断。
围绕“Redis 的 TTL 命令返回 -1 和 -2 分别代表什么,排查时怎么区分”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 -1 无过期时间、-2 Key 不存在,避免误判为即将过期。
围绕“Redis 的 ZINCRBY 在排行榜中更新分数为什么是原子的,负数能用吗”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明服务端原子加减且支持负数实现扣分、成员不存在时自动创建。
围绕“消费 Redis 有序集合队头任务时,ZPOPMIN 相比 ZRANGE 加 ZREM 好在哪”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明单命令原子取并删避免消费者竞争。
围绕“Redis 按分数区间查询时,ZRANGEBYSCORE 的开闭区间和正负无穷怎么写”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须讲清括号表示开区间、-inf/+inf 及 min max 顺序。
围绕“Redis 排行榜分页取前 N 名用什么命令,为什么要带 WITHSCORES”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明用 ZRANGE/ZREVRANGE 按排名区间取并连同分数返回避免二次查询。
围绕“用 Redis 有序集合实现延迟队列的基本原理是什么,消费者怎么取到期任务”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明以执行时间戳为 score、ZRANGEBYSCORE 取到期任务加 ZREM 抢占。
围绕“Redis 有序集合为什么同时用哈希表和跳表两种结构”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明哈希支撑按成员 O(1) 查分数、跳表支撑排序与范围。
围绕“用 Redis 有序集合实现积分排行榜,如何处理同分数的排名顺序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明同分时按成员字典序排列及可用分数拼接时间戳等设计修正。
围绕“Redis 有序集合为什么用跳表而不是平衡树来实现排序”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确实现简单、范围查询高效、并发友好等原因。
围绕“用 Redis 有序集合实现滑动窗口限流的思路是什么,如何避免重复计数”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明以时间戳为成员/score、ZREMRANGEBYSCORE 清旧窗口再计数。
围绕“Redis 有序集合相比普通集合多出的 score 带来了哪些能力”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按分数排序、范围查询和排名三类能力由跳表加哈希支撑。
围绕“Redis 的 ZUNIONSTORE 如何实现多个榜单的加权汇总,有什么性能注意点”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 WEIGHTS 与 AGGREGATE 语义及大集合聚合阻塞风险。
围绕“Cache Aside(旁路缓存)模式的读写流程是什么,为什么是更新数据库后删缓存而不是先删缓存再更新”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出读 miss 回填、写时先写库再失效缓存的标准流程,以及先删缓存会被并发读回填旧值的问题。
围绕“Redis 缓存雪崩的两种成因是什么,过期时间加随机抖动和多级缓存分别对应哪种”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须区分大量 key 同时过期与 Redis 实例宕机两种成因,并分别对应随机 TTL 和高可用/多级缓存/降级。
围绕“Redis 缓存击穿(单个热点键过期被并发重建)有哪些防护手段,互斥锁与逻辑过期怎么选”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出热点键失效瞬间大量请求同时回源的现象,互斥重建保证一致性但阻塞、逻辑过期返回旧值异步刷新保证可用性的取舍。
围绕“缓存与数据库双写不一致时,延迟双删和订阅 binlog 失效缓存各自解决什么问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出延迟双删针对读写并发窗口的旧值回填、binlog 订阅把失效逻辑与业务解耦,不承诺强一致、不展开分布式事务。
围绕“Redis 缓存穿透如何发生,缓存空值和布隆过滤器两种方案各自适合什么场景”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出查询不存在数据导致每次都打到数据库的机制,以及短 TTL 空值适合重复单 key、布隆过滤器适合海量不重复 key 的取舍。
围绕“定位到 Redis 热点键后,本地缓存、键拆分和只读副本分流三种治理手段分别适用于什么读写特征”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出读多写少用本地缓存或副本、写热点用拆键分散再聚合、以及拆键对原子操作的破坏。
围绕“本地缓存加 Redis 组成多级缓存时,实例间的本地缓存如何感知失效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出通过发布订阅或键空间通知广播失效消息使各节点清除本地副本,以及短暂不一致窗口。
围绕“Redis 内存达到 maxmemory 后八种淘汰策略如何分类,纯缓存与带持久数据的业务应分别选哪类”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 volatile-* 只淘汰设过期的键、allkeys-* 全体键中淘汰、noeviction 拒写三类的差异,纯缓存可用 a。
围绕“什么场景下可以完全关闭 Redis 持久化,关闭后副本节点还需要注意什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出可容忍全量丢失的纯缓存场景,以及副本默认重启后从主节点全量同步可能把空数据扩散的问题。
围绕“Read Through、Write Through 与 Write Behind 三种缓存模式的职责划分和一致性差”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出三者中缓存层与数据库的读写责任归属,以及 Write Behind 异步落库带来性能提升与丢数据风险。
围绕“资源被永久删除后返回 404 还是 410,语义和实际用途差在哪”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 410 表达主动永久移除及对爬虫与缓存的意义。
围绕“REST GET 响应如何利用 Cache-Control 与 ETag 降低服务端压力,写操作后缓存怎么失效”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖完整回答要覆盖可缓存性判定与失效联动。
围绕“当过滤条件复杂到查询参数无法表达时,用 POST /search 创建查询资源是否违背 REST”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答需要围绕必须权衡 URL 长度、缓存能力与语义纯度给出方案。
围绕“ETag 和 Last-Modified 做条件请求时各有什么局限,什么时候必须选 ETag”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须指出秒级精度与弱校验的局限。
围绕“HTTP 安全方法是什么,GET 被缓存和预取带来什么设计约束”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明安全方法不应改变资源状态及违反后的实际风险。
围绕“REST API 版本放在 URL 路径、查询参数还是请求头,各自对缓存和演进有什么影响”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须比较多路由方案的可缓存性、可见性与演进成本。
围绕“React Native Codegen 生成失败时,如何区分规格文件错误、依赖版本错位与缓存脏产物”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出规格校验、四端版本对齐与清理生成物的定位顺序。
围绕“React Native iOS 开启新架构时,Podfile 与构建环境变量要保持哪些一致性”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明 pod install、Swift/ObjC 互操作与缓存重建的一致触发条件。