すべてのプロダクト
Search
ドキュメントセンター

Tair (Redis® OSS-Compatible):ステップ 3: インスタンスに接続する

最終更新日:Nov 09, 2025

この Topic では、redis-cli、コード、または Data Management (DMS) を使用して Tair (Redis OSS-compatible) インスタンスに接続する方法について説明します。

前提条件

手順

redis-cli

この例では、Linux ECS インスタンス上の redis-cli を使用して、同じ VPC 内の Tair (Redis OSS-compatible) インスタンスにアクセスする方法を示します。

説明

オンプレミスのデバイスから接続するには、パブリックエンドポイントをリクエストして接続に使用できます。

  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-cli 7.2.0 を使用します。他のバージョンをインストールすることもできます。コンパイルとインストールのプロセスには通常 2〜3 分かかります。

  2. 次のコマンドを実行してインスタンスに接続します。

    src/redis-cli -h hostname -a password -p port

    パラメーター:

    • hostname: インスタンスのエンドポイント。コンソールの 接続情報 エリアで、インスタンスの [VPC] エンドポイント (例: 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 を使用する場合は Lettuce を除外します。 -->
        <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) を取得します。クライアントのネットワーク環境に基づいて、VPC エンドポイントまたはパブリックエンドポイントを選択します。
            RedisStandaloneConfiguration config = new RedisStandaloneConfiguration("r-8vbwds91ie1rdl****.redis.zhangbei.rds.aliyuncs.com", 6379);
            // パスワードのフォーマットは account:password です。たとえば、アカウントが testaccount でパスワードが Rp829dlwa の場合、パスワードを testaccount:Rp829dlwa に設定します。
            // アカウントまたはパスワードを忘れた場合は、インスタンス詳細ページに移動し、左側のナビゲーションウィンドウで [アカウント管理] をクリックしてパスワードをリセットするか、アカウントを作成します。
            config.setPassword(RedisPassword.of("Account:Password"));
            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("Connection successful:"+redisTemplate.opsForValue().get("test_key"));
            } catch (Exception e) {
                e.printStackTrace();
                System.out.println("接続中に例外が発生しました。ネットワーク、ホワイトリスト、アカウントまたはパスワードの問題をトラブルシューティングするには、" +
                        "https://www.alibabacloud.com/help/en/redis/support/how-do-i-troubleshoot-connection-issues-in-apsaradb-for-redis" +
                        " のドキュメントを参照してください。" +
                        " エラーメッセージに基づいてドキュメントを参照することもできます: https://www.alibabacloud.com/help/en/redis/support/common-errors-and-troubleshooting");
            }
    
        }
    }

    コードを実行します。接続に成功すると、次の結果が返されます。

    Connection successful:hello world!

DMS

  1. コンソールにログインし、インスタンスページに移動します。上部のナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。次に、インスタンスを見つけてインスタンス ID をクリックします。

  2. ページの右上隅にある データベースにログインする ボタンをクリックします。

  3. DMS ログインページで、[アクセスモード][パスワードログイン] に設定し、パスワードを入力します。

    このメソッドは、デフォルトアカウントでログインします。アカウントの詳細は、コンソールの アカウント管理 ページで表示できます。

  4. [ログイン] ボタンをクリックします。

  5. データの書き込みと読み取り。

    1. DMS の [SQL コンソール] ページで、コマンド SET foo hello を入力し、[実行 (F8)] をクリックします。

      期待される出力は OK です。

    2. GET foo コマンドを入力し、[実行 (F8)] をクリックします。

      期待される出力は hello です。

参考資料

以下の Topic では、より詳細な説明と例を示します。

特別な接続方法

  • SSL 暗号化を有効にしてインスタンスに接続する: Transport Layer Security (TLS) 暗号化機能を有効にすると、データリンクのセキュリティが向上し、データ整合性が確保されます。

  • 直接接続モードを使用してインスタンスに接続する: クラスターインスタンスの場合、直接接続エンドポイントをリクエストできます。このエンドポイントを使用すると、バックエンドのデータシャードに直接アクセスできます。これは、ネイティブの Redis クラスターへの接続に似ています。 プロキシモード と比較して、直接接続モードはリクエストがプロキシによって処理される必要がないため、応答時間が短縮されます。

  • Sentinel 互換モードを使用してインスタンスに接続する: インスタンスは Sentinel 互換モードを提供します。このモードを有効にすると、クライアントはネイティブの Redis Sentinel に接続するのと同じ方法でインスタンスに接続できます。

一般的なエラー

エラーメッセージ

原因と解決策

(error) ERR illegal address

ホワイトリストが正しく設定されていません。次の項目を確認してください:

  1. クライアントの IP アドレスがインスタンスのホワイトリストに追加されているかどうかを確認します。詳細については、「ホワイトリストの設定」をご参照ください。

  2. インスタンスに対して正しいエンドポイントを選択したかどうかを確認します。たとえば、インターネット経由でインスタンスに接続する場合は、インスタンスのパブリックエンドポイントを使用する必要があります。VPC エンドポイントを使用すると、接続は失敗します。

  3. ECS インスタンスを使用して VPC 経由で接続する場合、ECS インスタンスと Tair インスタンスが同じ VPC にあるかどうかを確認します。同じ VPC にない場合は、インターネット経由で接続する必要があります。

トラブルシューティング後、ping <instance_endpoint> コマンドを実行してネットワーク接続をテストできます。たとえば、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 フォーマットでパスワードを入力します。[ユーザー名] フィールドには情報を入力しないでください。そうしないと、接続は失敗します。

  • パスワードを忘れた場合は、リセットできます。詳細については、「パスワードの変更またはリセット」をご参照ください。