Conéctese a una instancia de Tair (Redis OSS-compatible) mediante redis-cli, código o Data Management (DMS).
Requisitos previos
Se configuró un IP address whitelist para la instancia.
Se especificó una contraseña para la instancia. Si no se definió ninguna contraseña, consulte Change or reset the password.
Procedimiento
redis-cli
En este ejemplo se usa redis-cli en una instancia de Linux de Elastic Compute Service (ECS) para conectarse a una instancia de Tair (Redis OSS-compatible) dentro de la misma virtual private cloud (VPC).
Para conectarse a través de Internet, apply for a public endpoint.
-
Inicie sesión en la instancia de ECS y ejecute los siguientes comandos para descargar, compilar e instalar redis-cli:
sudo yum -y install gcc # Install GNU Compiler Collection (GCC). wget https://download.redis.io/releases/redis-7.2.0.tar.gz tar xzf redis-7.2.0.tar.gz cd redis-7.2.0&&makeEste ejemplo utiliza redis-cli 7.2.0. También puede instalar otra versión. La compilación tarda entre 2 y 3 minutos.
-
Ejecute el siguiente comando para conectarse a la instancia:
src/redis-cli -h hostname -a password -p portParámetros:
hostname: el endpoint de la instancia. En la sección Connection Information de la página de detalles de la instancia, busque el endpoint de VPC, por ejemplo,
r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com. Para obtener más información, consulte View endpoints.password: la contraseña de la instancia.
port: el número de puerto. Valor predeterminado: 6379.
Comando de ejemplo:
src/redis-cli -h r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com -a TestPassword123 -p 6379 -
Escriba y lea datos.
-
Ejecute el comando
SET bar foo.Resultado esperado:
OK. -
Ejecute el comando
GET bar.Resultado esperado:
"foo".
-
Código
Para conectarse a través de Internet, apply for a public endpoint.
Este ejemplo utiliza el cliente Jedis . Para otros tipos de clientes, consulte Connection code examples with common types of clients.
-
Agregue las dependencias obligatorias al archivo pom.xml.
<!-- Import spring-data-redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <!-- Since Spring Boot 2.0, Lettuce is the default client. Exclude lettuce when using Jedis. --> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <!-- Import jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> -
Modifique los parámetros de conexión según los comentarios.
@Configuration public class RedisConfig { @Bean JedisConnectionFactory redisConnectionFactory() { // This example is used only to test connectivity. In production environments, we recommend that you place connection information in a configuration file and retrieve it using the @Value annotation. // The endpoint (hostName) and port (port) can be obtained from the Connection Information section of the instance details page. Select a VPC endpoint or public endpoint based on your client network environment. RedisStandaloneConfiguration config = new RedisStandaloneConfiguration("r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com", 6379); // Specify the password in the username:password format. For example, if the username is testaccount and the password is Rp829dlwa, enter testaccount:Rp829dlwa as the password. // If you forget your username or password, you can reset the password or create a new account by clicking Account Management in the left-side navigation pane of the instance details page. config.setPassword(RedisPassword.of("Username:Password")); JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); // Specify the maximum number of connections based on your business requirements. This value cannot exceed the maximum number of connections supported by the instance. jedisPoolConfig.setMaxTotal(30); // Specify the maximum number of idle connections based on your business requirements. This value cannot exceed the maximum number of connections supported by the instance. jedisPoolConfig.setMaxIdle(20); // Disable testOn[Borrow|Return] to prevent additional PING commands from being generated. jedisPoolConfig.setTestOnBorrow(false); jedisPoolConfig.setTestOnReturn(false); JedisClientConfiguration jedisClientConfiguration = JedisClientConfiguration.builder().usePooling().poolConfig( jedisPoolConfig).build(); return new JedisConnectionFactory(config, jedisClientConfiguration); } @Bean public RedisTemplate<String, Object> redisTemplate() { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory()); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return template; } } -
Compruebe la conectividad.
@SpringBootTest public class RedisTest { @Autowired private RedisTemplate<String, Object> redisTemplate; @Test void test() { try { redisTemplate.opsForValue().set("test_key", "hello world!"); System.out.println("Connection successful:"+redisTemplate.opsForValue().get("test_key")); } catch (Exception e) { e.printStackTrace(); System.out.println("An exception occurred during the connection attempt. Refer to the documentation " + "https://www.alibabacloud.com/help/en/redis/support/how-do-i-troubleshoot-connection-issues-in-apsaradb-for-redis?spm=a2c63.p38356.help-menu-26340.d_5_1_1_4.47ca2024nvxRlS" + "to troubleshoot network, whitelist, and account/password issues." + "You can also refer to the documentation based on the error message: https://www.alibabacloud.com/help/en/redis/support/common-errors-and-troubleshooting?spm=a2c63.p38356.help-menu-26340.d_5_0.77cc79fejApYJN"); } } }Si la conexión es exitosa, el resultado es el siguiente:
Connection successful: hello world!
DMS
Inicie sesión en la consola y vaya a la página Instances. En la barra de navegación superior, seleccione la región donde reside la instancia que desea gestionar. A continuación, busque la instancia y haga clic en su ID.
En la esquina superior derecha de la página de detalles de la instancia, haga clic en Log into Database.
-
En el cuadro de diálogo Log on to Database Instance, establezca Access mode en password login e introduzca una contraseña.
Este modo utiliza la cuenta predeterminada. Consulte los detalles de la cuenta en la página Account Management de la consola.
Haga clic en Login.
-
Escriba y lea datos.
-
En la página SQLConsole, introduzca el comando
SET foo helloy haga clic en Execute(F8).Resultado esperado:
OK. -
Introduzca el comando
GET fooy haga clic en Execute(F8).Resultado esperado:
hello.
-
Referencias
Para obtener más información, consulte los siguientes temas:
Métodos de conexión especiales
Enable TLS (SSL) encrypted connections to an instance: el cifrado TLS mejora la seguridad del enlace de transporte y garantiza la integridad de los datos.
Use direct connection mode to connect to a cluster instance: si su instancia es una instancia de clúster en modo de conexión directa, puede usar el endpoint privado para omitir los nodos proxy y acceder directamente a los fragmentos de datos del backend. Esta conexión a instancias de clúster es similar a la conexión con clústeres de Redis de código abierto. En comparación con el modo proxy, el modo de conexión directa reduce el tiempo de respuesta porque las solicitudes no necesitan pasar por los nodos proxy.
Connect using the Sentinel-compatible mode: Tair (Redis OSS-compatible) proporciona el modo compatible con Sentinel. Después de habilitar este modo, las instancias se pueden conectar desde el cliente de la misma manera que con Redis Sentinel nativo.
Errores comunes y solución de problemas
|
Mensaje de error |
Causa y solución |
|
|
La lista blanca está configurada incorrectamente.
Ejecute |
|
|
|
|
|
|
|
Contraseña no válida. El formato obligatorio varía según el tipo de cuenta.
Nota
|