Los pozos encontrados al conectarse al clúster de redis en el proyecto real de golang

       El redis en el proyecto usa directamente el servicio redis de aws, redis es un clúster, es decir, el pozo que golang encuentra cuando se conecta al clúster de redis, de la siguiente manera

       Primero que nada utilizo redisgo, porque es más conveniente mirar la API, es más como redis-cli, y también se recomienda aws. Luego, la conexión estuvo bien al principio, la implementé no menos de 10 veces, pero un día cuando la implementé. El servidor de repente informó de un error al operar redis. "(Error) MOVED xxxx xxx.xxx.xxx.xxx:xxxx", después de consultar, se encontró que redis no eligió conectarse al clúster. Lo verifiqué nuevamente y descubrí que aws recomendó oficialmente dos bibliotecas redis, redisgo y go -redis Dos bibliotecas, redisgo no admite clusters (lástima), y las he implementado tantas veces sin ningún problema. Es posible que haya estado conectado al maestro todo el tiempo y, de repente, se informó de un error cuando se conectó al esclavo. Afortunadamente, se descubrió temprano.

       Cuando go-redis / redis se conecta a la base de datos, la demostración oficial ofrece varios puertos.

import "github.com/go-redis/redis/v8"

rdb := redis.NewClusterClient(&redis.ClusterOptions{
    Addrs: []string{":7000", ":7001", ":7002", ":7003", ":7004", ":7005"},

    // To route commands by latency or randomly, enable one of the following.
    //RouteByLatency: true,
    //RouteRandomly: true,
})

      Esto se puede completar con varias direcciones, siempre que ingrese su propia dirección en el segmento de la cadena, si solo hay una dirección, complete solo una (el clúster de redis en el proyecto solo puede exponer una dirección al exterior)

clusterClient = redis.NewClusterClient(&redis.ClusterOptions{
	Addrs: []string{"your addr1"},
})

      La interfaz redis.NewClusterClient está conectada al maestro de forma predeterminada. Si solo desea conectarse al esclavo, puede controlarlo a través de parámetros. Puede consultar la descripción de la interfaz para obtener más detalles.

      Después de cambiar finalmente el paquete, el problema de la conexión del clúster de redis se resolvió con éxito.

Supongo que te gusta

Origin blog.csdn.net/banfushen007/article/details/113175322
Recomendado
Clasificación