答:热 key 是请求远多于其他键的键,容易把负载集中到一个节点。用应用指标或采样定位。Redis 8.6 提供 HOTKEYS 命令,旧版需用适合自身配置的观测手段。
答:先用 keyspace_hits、keyspace_misses 和应用缓存口径找缺失原因。优先缓存反复被读取、又需要耗时回源的数据,再调整粒度、TTL、容量和预热。
答:没有固定 QPS。命令复杂度、数据大小、连接、网络、持久化和机器资源都会改变结果。用业务负载压测吞吐与尾延迟。
答:普通操作通常短,数据在内存,主线程串行执行可以简化数据结构并发协调。旧版也有后台线程和进程。Redis 6 引入可配置的 I/O 线程,主要用于网络读写。
答:应用的键名冲突靠命名空间、完整标识和必要时 SET NX 解决。内部字典哈希碰撞会继续比对完整键,不会把两个不同字符串视为同一个键。
答:很多缓存同时失效或缓存服务整体不可用,回源请求一起冲进数据库,就是常说的雪崩。错峰过期、限流、预热和降级可减少冲击。
答:可能是某条慢命令、主线程排队、内存回收、持久化、网络拥塞或客户端池耗尽。先对齐请求时间和服务端指标。
答:先取慢日志和延迟事件,再按命令、键大小、时段和来源筛选。查看 CPU、内存、网络、持久化及复制状态,判断资源在哪一步用完。
答:客户端分片是在应用或代理里按键选 Redis 节点。简单方案对固定节点数量取模,一致性哈希等方案减少扩缩容时的键迁移。Redis Cluster 有自身的槽位协议。
答:把节点与键放到同一个哈希环。键沿固定方向找到第一个节点。增加节点时,通常只接走它与前一个节点之间的键,删除时把该段交给下一节点。