本樣本指導您通過redis-cli、代碼和Data Management快速串連雲資料庫 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.2.0.tar.gz tar xzf redis-7.2.0.tar.gz cd redis-7.2.0&&make本文以redis-7.2.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://www.alibabacloud.com/help/zh/redis/support/how-do-i-troubleshoot-connection-issues-in-apsaradb-for-redis" + "排查網路、白名單、帳號密碼問題。" + "也可根據報錯資訊查詢文檔:https://www.alibabacloud.com/help/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一樣串連執行個體。
常見報錯
報錯資訊 | 原因及解決方案 |
| 未設定正確的白名單,可依次排查如下事項:
排查後,可通過 |
| |
| |
| 密碼錯誤,請使用正確的密碼和密碼格式。根據選取帳號的不同,密碼格式有一定區別。
說明
|