本示例指导您通过redis-cli、代码和数据管理DMS快速连接云数据库 Tair(兼容 Redis)。
前提条件
操作步骤
redis-cli
本示例在ECS(Linux)上使用redis-cli访问处于同一专有网络的云数据库 Tair(兼容 Redis)。
本地连接请申请公网连接地址后使用公网地址连接。
登录ECS实例,依次执行以下命令,下载、安装编译redis-cli。
sudo yum -y install gcc # 安装gcc依赖环境 wget https://download.redis.io/releases/redis-7.0.0.tar.gz tar xzf redis-7.0.0.tar.gz cd redis-7.0.0&&make
本文以redis-7.0.0版本为例演示操作流程,您也可以安装其他版本。编译安装通常需要2分钟~3分钟。
执行下述命令连接实例。
src/redis-cli -h hostname -a password -p port
参数说明:
hostname:实例连接地址,您可以在控制台的连接信息区域获取实例的专有网络连接地址,例如
r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com
,更多信息请参见查看连接地址。password:密码。
port:端口号,默认为6379。
连接示例:
src/redis-cli -h r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com -a TestPassword123 -p 6379
写入与读写数据。
执行命令
SET bar foo
。预计返回
OK
。执行命令
GET bar
。预计返回
"foo"
。
代码连接
本地连接请申请公网连接地址后使用公网地址连接。
本示例使用Jedis客户端进行连接。其他常见客户端连接代码请参见常见客户端连接示例。
添加pom.xml配置。
<!-- 导入spring-data-redis --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <!-- spring boot 2.0之后默认使用lettuce客户端, 使用jedis时需要排包 --> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <!-- 导入jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency>
配置连接信息,请根据注释修改对应参数。
@Configuration public class RedisConfig { @Bean JedisConnectionFactory redisConnectionFactory() { //本案例仅用于测试连接,生产环境建议将连接信息填写到配置文件中,通过@Value注解读取 //连接地址(hostName)和端口(port)在实例详情页下方连接信息区域获取,请根据客户端网络环境选择专有网络或公网连接 RedisStandaloneConfiguration config = new RedisStandaloneConfiguration("r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com", 6379); //password填写格式为 账号:密码,例如:账号testaccount,密码Rp829dlwa,password填写testaccount:Rp829dlwa //忘记账号密码请在实例详情页左侧菜单列表点击账号管理重置密码或创建账号 config.setPassword(RedisPassword.of("账号:密码")); JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); // 最大连接数, 根据业务需要设置,不能超过实例规格规定的最大连接数。 jedisPoolConfig.setMaxTotal(30); // 最大空闲连接数, 根据业务需要设置,不能超过实例规格规定的最大连接数。 jedisPoolConfig.setMaxIdle(20); // 关闭 testOn[Borrow|Return],防止产生额外的PING。 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; } }
测试连接。
@SpringBootTest public class RedisTest { @Autowired private RedisTemplate<String, Object> redisTemplate; @Test void test() { try { redisTemplate.opsForValue().set("test_key", "hello world!"); System.out.println("连接成功:"+redisTemplate.opsForValue().get("test_key")); } catch (Exception e) { e.printStackTrace(); System.out.println("连接出现异常,请根据文档:" + "https://help.aliyun.com/zh/redis/support/how-do-i-troubleshoot-connection-issues-in-apsaradb-for-redis" + "排查网络、白名单、账号密码问题。" + "也可根据报错信息查询文档:https://help.aliyun.com/zh/redis/support/common-errors-and-troubleshooting"); } } }
运行上述代码,连接成功将返回如下结果:
连接成功:hello world!
DMS
访问实例列表,在上方选择地域,然后单击目标实例ID。
在页面右上角,单击登录数据库。
在DMS登录页面,选择访问方式为密码登录,并输入密码。
此方式将使用默认账号进行登录,您可以在控制台的账号管理页面查看账号详情信息。
单击登录。
写入与读写数据。
在DMS SQLConsole页面,输入命令
SET foo hello
,并单击执行(F8)。预计返回
OK
。输入命令
GET foo
,并单击执行(F8)。预计返回
hello
。
相关文档
以下文档中将提供更详细的说明与示例。
特殊连接方式
启用TLS(SSL)加密连接实例:启用TLS加密功能提高数据链路的安全性,保障数据的完整性。
使用直连模式连接实例:集群架构实例可申请直连地址,通过该地址可直接访问后端的数据分片(类似连接原生Redis集群)。相比 代理模式 ,直连模式节约了通过代理处理请求的时间,可以在一定程度上提高实例的响应速度。
使用Sentinel兼容模式连接实例:实例提供Sentinel(哨兵)兼容模式,开启后客户端可以像连接原生Redis Sentinel一样连接实例。
常见报错
报错信息 | 原因及解决方法 |
| 未设置正确的白名单,可依次排查如下事项:
排查后,可通过 |
| |
| |
| 密码错误,请使用正确的密码和密码格式。根据选取账号的不同,密码格式有一定区别。
说明
|