多任务支持
修改了下支持多任务,可以提 PR 吗 https://github.com/dev-lake/RedisShakeMulti
@dev-lake 多任务是一个 shake 执行多个同步任务吗。为什么不开多个 shake 呢?
方便统一的任务管理,后面也可以添加 API 接口和 UI 控制面板
试了一下,异常了。集群 redis 3.2.6 向 集群 6.2.7同步 rds-sync run 2025-07-08 20:46:01 INF log_level: [info], log_file: [/home/xj/RedisShakeMulti/logs/global.log] 2025-07-08 20:46:01 INF changed work dir. dir=[/home/xj/RedisShakeMulti] 2025-07-08 20:46:01 INF GOMAXPROCS defaults to the value of runtime.NumCPU [16] 2025-07-08 20:46:01 INF not set pprof port 2025-07-08 20:46:01 INF log_level: [info], log_file: [/home/xj/RedisShakeMulti/logs/task_1.log] 2025-07-08 20:46:01 INF create SyncClusterReader 2025-07-08 20:46:01 INF * address (should be the address of one node in the Redis cluster): 127.0.0.1:6379 2025-07-08 20:46:01 INF * username: 2025-07-08 20:46:01 INF * password: 2025-07-08 20:46:01 INF * tls: false 2025-07-08 20:46:01 INF address=127.0.0.1:6379, reply=ed1c5bd341638794a686ee879bb2999698c3ab3c 192.168.2.130:6379 myself,slave ab9b55131bca57fe8fd3d93b0fb6f554ec16c8b8 0 0 1 connected 2ae34007b0c89b8c77f51e933691f7f07a3ae9c6 192.168.2.132:6379 master - 0 1751978758324 5 connected 10923-16383 ab9b55131bca57fe8fd3d93b0fb6f554ec16c8b8 192.168.2.131:6380 master - 0 1751978758826 7 connected 0-5460 254dcfdd2c8f87f99733d6b32d4318b91529d140 192.168.2.131:6379 master - 0 1751978760831 3 connected 5461-10922 b384cda461059247c788a48baa78a6f710bd29ee 192.168.2.130:6380 slave 254dcfdd2c8f87f99733d6b32d4318b91529d140 0 1751978759829 3 connected fd487695a8fb2ab15160865cbe223859f722ae48 192.168.2.132:6380 slave 2ae34007b0c89b8c77f51e933691f7f07a3ae9c6 0 1751978757824 6 connected 2025-07-08 20:46:01 INF create RedisClusterWriter 2025-07-08 20:46:01 INF * address (should be the address of one node in the Redis cluster): 172.16.2.14:6179 2025-07-08 20:46:01 INF * username: 2025-07-08 20:46:01 INF * password: ********* 2025-07-08 20:46:01 INF * tls: true 2025-07-08 20:46:01 INF address=172.16.2.14:6179, reply=26febbc7ce9c9b313c52f5f8ab0019f6b0091142 172.16.2.15:6179@16179 master - 0 1751978761167 4 connected 5461-10922 9403c620bc7f22880f2390de9eef9518e444fcfd 172.16.2.14:6180@16180 master - 0 1751978759000 2 connected 10923-16383 adc7f5f1177ce237de0a1cdcdb530c5b39d3628b 172.16.2.15:6180@16180 slave 9403c620bc7f22880f2390de9eef9518e444fcfd 0 1751978762174 2 connected 6d92df4fc9d77c0c44ae89a1a78da61a7301fc90 172.16.2.14:6179@16179 myself,master - 0 1751978760000 1 connected 0-5460 796d4a81ff5102a4c6756721def288d028e1d459 172.16.2.15:6181@16181 slave 6d92df4fc9d77c0c44ae89a1a78da61a7301fc90 0 1751978759151 1 connected 85f3eecf5b3c5387a03500d82b54cf0721371d2d 172.16.2.14:6181@16181 slave 26febbc7ce9c9b313c52f5f8ab0019f6b0091142 0 1751978760158 4 connected 2025-07-08 20:46:01 INF redisClusterWriter connected to redis cluster successful. addresses=[172.16.2.15:6179 172.16.2.14:6180 172.16.2.14:6179] 2025-07-08 20:46:01 INF Starting task 0 2025-07-08 20:46:01 INF [reader_192.168.2.132_6379] source db is not doing bgsave! continue. 2025-07-08 20:46:01 INF log_level: [info], log_file: [/home/xj/RedisShakeMulti/logs/task_2.log] 2025-07-08 20:46:01 INF create SyncClusterReader 2025-07-08 20:46:01 INF * address (should be the address of one node in the Redis cluster): 127.0.0.1:6379 2025-07-08 20:46:01 INF * username: 2025-07-08 20:46:01 INF * password: 2025-07-08 20:46:01 INF * tls: false 2025-07-08 20:46:01 INF [reader_192.168.2.131_6380] source db is not doing bgsave! continue. 2025-07-08 20:46:01 INF [reader_192.168.2.131_6379] source db is not doing bgsave! continue. 2025-07-08 20:46:01 INF address=127.0.0.1:6379, reply=ed1c5bd341638794a686ee879bb2999698c3ab3c 192.168.2.130:6379 myself,slave ab9b55131bca57fe8fd3d93b0fb6f554ec16c8b8 0 0 1 connected 2ae34007b0c89b8c77f51e933691f7f07a3ae9c6 192.168.2.132:6379 master - 0 1751978758324 5 connected 10923-16383 ab9b55131bca57fe8fd3d93b0fb6f554ec16c8b8 192.168.2.131:6380 master - 0 1751978758826 7 connected 0-5460 254dcfdd2c8f87f99733d6b32d4318b91529d140 192.168.2.131:6379 master - 0 1751978760831 3 connected 5461-10922 b384cda461059247c788a48baa78a6f710bd29ee 192.168.2.130:6380 slave 254dcfdd2c8f87f99733d6b32d4318b91529d140 0 1751978759829 3 connected fd487695a8fb2ab15160865cbe223859f722ae48 192.168.2.132:6380 slave 2ae34007b0c89b8c77f51e933691f7f07a3ae9c6 0 1751978757824 6 connected 2025-07-08 20:46:01 INF create RedisClusterWriter 2025-07-08 20:46:01 INF * address (should be the address of one node in the Redis cluster): 172.16.2.5:6179 2025-07-08 20:46:01 INF * username: 2025-07-08 20:46:01 INF * password: ********* 2025-07-08 20:46:01 INF * tls: true 2025-07-08 20:46:01 INF address=172.16.2.5:6179, reply=8de43a818a8fe853a870d34a630ade5105e9aeef 172.16.2.5:6181@16181 master - 0 1751978759000 3 connected 10923-13652 773a59a550c2876d900f46ab3de9637a868c19c7 172.16.2.5:6180@16180 master - 0 1751978757000 2 connected 5461-8191 7797da22ae5eabd1e901ea579a629529eff04be1 172.16.2.6:6179@16179 master - 0 1751978760000 4 connected 2731-5460 7da7c3a9aee2dc0bdd8408d2ed1e72f7e05b1686 172.16.2.5:6182@16182 slave c1dfa89e241e31b0a399089dd002682150c3c536 0 1751978758000 6 connected 35c455e79ac19ab8da30a772bdd77257c06035e6 172.16.2.6:6183@16183 slave 773a59a550c2876d900f46ab3de9637a868c19c7 0 1751978761684 2 connected ff7fa94c7f346a7d91a0a8a9d3693fe6e747f7ea 172.16.2.6:6184@16184 slave 8de43a818a8fe853a870d34a630ade5105e9aeef 0 1751978758000 3 connected 5993086530edc1e8e3d0dad1a427285e4c2e986e 172.16.2.5:6179@16179 myself,master - 0 1751978759000 1 connected 0-2730 d231b8f062da8c7490beaceafda31ab29edee0db 172.16.2.5:6184@16184 slave 4fd7fcba29c7096acf2dcc0c9ea25af3d274b78e 0 1751978761000 5 connected d6fc7e8189bc98399d2fae0a3023e38ec595d03d 172.16.2.5:6183@16183 slave 7797da22ae5eabd1e901ea579a629529eff04be1 0 1751978756663 4 connected 295c3918987c550dcadeeda2d1d9d81f7c5335a3 172.16.2.6:6182@16182 slave 5993086530edc1e8e3d0dad1a427285e4c2e986e 0 1751978762691 1 connected c1dfa89e241e31b0a399089dd002682150c3c536 172.16.2.6:6181@16181 master - 0 1751978758672 6 connected 13653-16383 4fd7fcba29c7096acf2dcc0c9ea25af3d274b78e 172.16.2.6:6180@16180 master - 0 1751978759676 5 connected 8192-10922 2025-07-08 20:46:01 INF redisClusterWriter connected to redis cluster successful. addresses=[172.16.2.5:6181 172.16.2.5:6180 172.16.2.6:6179 172.16.2.5:6179 172.16.2.6:6181 172.16.2.6:6180] 2025-07-08 20:46:01 INF Starting task 1 2025-07-08 20:46:01 WRN [reader_192.168.2.132_6379] source db is doing bgsave, waiting for a while. 2025-07-08 20:46:01 INF [reader_192.168.2.131_6380] source db is not doing bgsave! continue. 2025-07-08 20:46:01 WRN [reader_192.168.2.131_6379] source db is doing bgsave, waiting for a while. 2025-07-08 20:46:02 INF [reader_192.168.2.131_6379] source db is not doing bgsave! continue. 2025-07-08 20:46:02 INF [reader_192.168.2.132_6379] source db is not doing bgsave! continue. 2025-07-08 20:46:11 ERR [reader_192.168.2.131_6379] read aof file failed. error=[redis: invalid reply: "\r\n"] RedisShake/internal/reader/sync_standalone_reader.go:495 -> (*syncStandaloneReader).sendAOF() RedisShake/internal/reader/sync_standalone_reader.go:168 -> (*syncStandaloneReader).StartReadWithPSync.func1() runtime/asm_amd64.s:1650 -> goexit()