Redis版本:3.2.10
ioredis版本:3.1.4
最近我测试了在redis集群上运行重新分片操作,而集群负载很高,客户端正在使用ioredis node.js库,偶尔在客户端上我们在reshard操作期间看到了以下错误。
Too many Cluster redirections. Last error: ReplyError: MOVED 8155 172.31.37.232:6379.
Error: Too many Cluster redirections. Last error: ReplyError: MOVED 8155 172.31.37.232:6379
at Cluster.handleError (/data/api/node_modules/ioredis/lib/cluster/index.js:554:30)
at Command.command.reject (/data/api/node_modules/ioredis/lib/cluster/index.js:444:13)
at Redis.exports.returnError (/data/api/node_modules/ioredis/lib/redis/parser.js:75:18)
at JavascriptReplyParser.returnError (/data/api/node_modules/ioredis/lib/redis/parser.js:25:13)
at JavascriptReplyParser.run (/data/api/node_modules/redis-parser/lib/javascript.js:135:18)
at JavascriptReplyParser.execute (/data/api/node_modules/redis-parser/lib/javascript.js:112:10)
at Socket.<anonymous> (/data/api/node_modules/ioredis/lib/redis/event_handler.js:107:22)
at emitOne (events.js:96:13)
at Socket.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at Socket.Readable.push (_stream_readable.js:134:10)
at TCP.onread (net.js:548:20)
我目前正在为ioredis使用以下选项的默认值: maxRedirections 16 retryDelayOnFailover 100ms
这是否意味着在reshard期间,插槽数据传输的时间超过1600毫秒?
我广泛地知道迁移插槽的过程如下:
但是,在上述哪个步骤中客户端无法获取或设置关键数据?
对于上下文,在此测试期间,每个节点的运行速度高达100k op /秒。