全部產品
Search
文件中心

Tair (Redis® OSS-Compatible):步驟3:串連執行個體

更新時間:Sep 24, 2025

本樣本指導您通過redis-cli、代碼和Data Management快速串連雲資料庫 Tair(相容 Redis)

前提條件

操作步驟

redis-cli

本樣本在ECS(Linux)上使用redis-cli訪問處於同一專用網路的雲資料庫 Tair(相容 Redis)

說明

本地串連請申請公網串連地址後使用公網地址串連。

  1. 登入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分鐘。

  2. 執行下述命令串連執行個體。

    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
  3. 寫入與讀寫資料。

    1. 執行命令SET bar foo

      預計返回OK

    2. 執行命令GET bar

      預計返回"foo"

代碼串連

說明

本地串連請申請公網串連地址後使用公網地址串連。

本樣本使用Jedis用戶端進行串連。其他常見用戶端串連代碼請參見常見用戶端串連樣本

  1. 添加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>
  2. 配置串連資訊,請根據注釋修改對應參數。

    @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;
        }
    }
  3. 測試連接。

    @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

  1. 訪問執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。

  2. 在頁面右上方,單擊登入資料庫

  3. 在DMS登入頁面,選擇訪問方式密碼登入,並輸入密碼。

    此方式將使用預設帳號進行登入,您可以在控制台的帳號管理頁面查看帳號詳情資訊。

  4. 單擊登入

  5. 寫入與讀寫資料。

    1. 在DMS SQLConsole頁面,輸入命令SET foo hello,並單擊執行(F8)

      預計返回OK

    2. 輸入命令GET foo,並單擊執行(F8)

      預計返回hello

相關文檔

以下文檔中將提供更詳細的說明與樣本。

特殊串連方式

  • 啟用TLS(SSL)加密串連執行個體:啟用TLS加密功能提高資料鏈路的安全性,保障資料的完整性。

  • 使用直連模式串連執行個體:叢集架構執行個體可申請直連地址,通過該地址可直接存取後端的資料分區(類似串連原生Redis叢集)。相比 代理模式 ,直連模式節約了通過代理處理請求的時間,可以在一定程度上提高執行個體的響應速度。

  • 使用Sentinel相容模式串連執行個體:執行個體提供Sentinel(哨兵)相容模式,開啟後用戶端可以像串連原生Redis Sentinel一樣串連執行個體。

常見報錯

報錯資訊

原因及解決方案

(error) ERR illegal address

未設定正確的白名單,可依次排查如下事項:

  1. 是否已將用戶端的IP地址添加至執行個體的白名單中,詳情請參見設定白名單

  2. 是否選擇正確的執行個體串連地址,例如通過公網串連執行個體,需串連執行個體的公網串連地址,若此時選擇執行個體的專用網路串連地址會導致串連失敗。

  3. 使用ECS通過專用網路串連時,檢查ECS是否與執行個體為同一VPC,若兩者不是同一VPC,則可使用公網的方式進行訪問。

排查後,可通過ping 執行個體地址進行測試,例如ping r-bp1zxszhcgatnx****.redis.rds.aliyuncs.com,若返回正常,則表示用戶端與執行個體可正常串連。

(error) ERR client ip is not in whitelist

Could not connect to Redis

  • (error) ERR invalid password

  • (error) WRONGPASS invalid username-password pair

密碼錯誤,請使用正確的密碼和密碼格式。根據選取帳號的不同,密碼格式有一定區別。

  • 使用預設帳號:直接填寫密碼即可。例如執行個體預設帳號為r-bp1zxszhcgatnx****,自訂密碼為Password21,密碼驗證命令為AUTH Password21

  • 使用新建立的帳號:密碼格式為user:password。例如自訂帳號為testaccount,密碼為Rp829dlwa,密碼驗證命令為AUTH testaccount:Rp829dlwa

說明
  • 如果通過第三方資料庫管理工具(例如RDM等)串連執行個體,請在密碼框中輸入user:password進行串連,請不要在使用者名稱框中輸入任何資訊,否則會導致串連失敗。

  • 如果忘記密碼,您可以重設密碼。具體操作,請參見修改或重設密碼