I
Member
Redis 集群做分片迁移,最常见的故障就是迁移完部分 key 找不到,应用报空值。分享排查顺序。
一、先算 key 落在哪个 slot。用 CLUSTER KEYSLOT 算一下,确认这个 key 应该在哪个节点上。
二、看迁移中的重定向。ASK 和 MOVED 是两种信号,老版本客户端常忽略 ASK,导致读不到正在迁移的 key,升级客户端版本往往就解决了。
三、检查迁移是否完成。用 CLUSTER NODES 看 migrating 和 importing 状态,残留的迁移任务会让一部分 key 处于中间态。
四、大 key 迁移卡住要特别注意。bigkey 迁移超时会反复重试,拆 key 或者改用复制方式迁移更稳妥。
五、迁移后抽样验证。随机抽一批 key 做 GET 对照,别只看监控曲线。
你们 Redis 集群迁移踩过哪些坑?
一、先算 key 落在哪个 slot。用 CLUSTER KEYSLOT 算一下,确认这个 key 应该在哪个节点上。
二、看迁移中的重定向。ASK 和 MOVED 是两种信号,老版本客户端常忽略 ASK,导致读不到正在迁移的 key,升级客户端版本往往就解决了。
三、检查迁移是否完成。用 CLUSTER NODES 看 migrating 和 importing 状态,残留的迁移任务会让一部分 key 处于中间态。
四、大 key 迁移卡住要特别注意。bigkey 迁移超时会反复重试,拆 key 或者改用复制方式迁移更稳妥。
五、迁移后抽样验证。随机抽一批 key 做 GET 对照,别只看监控曲线。
你们 Redis 集群迁移踩过哪些坑?