Conecte-se a uma instância do Tair (Redis OSS-compatible) usando o redis-cli, código ou o Data Management (DMS).
Pré-requisitos
A lista de permissões de endereços IP da instância está configurada.
Uma senha está definida para a instância. Caso nenhuma senha esteja definida, consulte Alterar ou redefinir a senha.
Procedimento
redis-cli
Este exemplo utiliza o redis-cli em uma instância do Linux Elastic Compute Service (ECS) para se conectar a uma instância do Tair (Redis OSS-compatible) na mesma VPC.
Para se conectar pela Internet, solicite um endpoint público.
-
Faça logon na instância ECS e execute os seguintes comandos para baixar, compilar e instalar o 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 exemplo usa o redis-cli 7.2.0. Você pode instalar uma versão diferente. A compilação leva de 2 a 3 minutos.
-
Execute o seguinte comando para se conectar à instância:
src/redis-cli -h hostname -a password -p portParâmetros:
hostname: o endpoint da instância. Na seção Connection Information da página de detalhes da instância, localize o endpoint da VPC, por exemplo,
r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com. Para mais informações, consulte Visualizar endpoints.password: a senha da instância.
port: o número da porta. Padrão: 6379.
Comando de exemplo:
src/redis-cli -h r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com -a TestPassword123 -p 6379 -
Grave e leia dados.
-
Execute o comando
SET bar foo.Saída esperada:
OK. -
Execute o comando
GET bar.Saída esperada:
"foo".
-
Código
Para se conectar pela Internet, solicite um endpoint público.
Este exemplo utiliza o cliente Jedis . Para outros tipos de clientes, consulte Exemplos de código de conexão com tipos comuns de clientes.
-
Adicione as dependências necessárias ao 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 os parâmetros de conexão com base nos comentários.
@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; } } -
Teste a conectividade.
@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"); } } }Se a conexão for bem-sucedida, a saída será:
Connection successful: hello world!
DMS
Faça logon no console e acesse a página Instances. Na barra de navegação superior, selecione a região onde reside a instância que você deseja gerenciar. Em seguida, localize a instância e clique no ID da instância.
No canto superior direito da página de detalhes da instância, clique em Log into Database.
-
Na caixa de diálogo Log on to Database Instance, defina o Access mode como password login e insira uma senha.
Este modo utiliza a conta padrão. Visualize os detalhes da conta na página Account Management no console.
Clique em Login.
-
Grave e leia dados.
-
Na página SQLConsole, insira o comando
SET foo helloe clique em Execute(F8).Saída esperada:
OK. -
Insira o comando
GET fooe clique em Execute(F8).Saída esperada:
hello.
-
Referências
Para mais informações, consulte os seguintes tópicos:
Métodos de conexão especiais
Ative conexões criptografadas por TLS (SSL) para uma instância: A criptografia TLS melhora a segurança do link de transporte e garante a integridade dos dados.
Usar o modo de conexão direta para se conectar a uma instância cluster: Se a sua instância for uma instância cluster no modo de conexão direta, você pode usar o endpoint privado para contornar os nós de proxy e acessar diretamente os shards de dados de backend. Essa conexão com instâncias cluster é semelhante à conexão com clusters Redis de código aberto. Em comparação com o modo de proxy, o modo de conexão direta reduz o tempo de resposta, pois as solicitações não precisam passar pelos nós de proxy.
Conectar usando o modo compatível com Sentinel: O Tair (Redis OSS-compatible) fornece o modo compatível com Sentinel. Após ativar este modo, as instâncias podem ser conectadas a partir do cliente da mesma forma que o Redis Sentinel nativo.
Erros comuns e solução de problemas
|
Mensagem de erro |
Causa e solução |
|
|
A lista de permissões está configurada incorretamente.
Execute |
|
|
|
|
|
|
|
Senha inválida. O formato necessário varia de acordo com o tipo de conta.
Nota
|