feat: 支持使用ipv6地址的redis集群

v4
lance.wang 2 years ago committed by suxb201
parent d58c809edf
commit f3ed749471
  1. 12
      internal/writer/redis_cluster.go

@ -1,6 +1,7 @@
package writer
import (
"fmt"
"github.com/alibaba/RedisShake/internal/client"
"github.com/alibaba/RedisShake/internal/entry"
"github.com/alibaba/RedisShake/internal/log"
@ -41,6 +42,17 @@ func (r *RedisClusterWriter) loadClusterNodes(address string, username string, p
log.Infof("redisClusterWriter load cluster nodes. line=%v", line)
// address
address := strings.Split(words[1], "@")[0]
// handle ipv6 address
tok := strings.Split(address, ":")
if len(tok) > 2 {
// ipv6 address
port := tok[len(tok)-1]
ipv6Addr := strings.Join(tok[:len(tok)-1], ":")
address = fmt.Sprintf("[%s]:%s", ipv6Addr, port)
}
r.addresses = append(r.addresses, address)
// writers
redisWriter := NewRedisWriter(address, username, password, isTls)

Loading…
Cancel
Save