All Products
Search
Document Center

PolarDB:Panduan koneksi Orca

Last Updated:Dec 19, 2025

Fitur Orca dari PolarDB for MySQL kompatibel dengan protokol Redis, sehingga memungkinkan Anda menghubungkan ke database menggunakan klien Redis utama. Topik ini menjelaskan prasyarat koneksi dan menyediakan contoh kode untuk klien dalam beberapa bahasa pemrograman umum.

Persiapan

Sebelum menghubungkan ke fitur Orca, lengkapi prasyarat berikut:

Catatan

  • Perbedaan mekanisme autentikasi: Mekanisme autentikasi untuk fitur Orca berbeda dari Redis native. Orca tidak memiliki pengguna default; semua koneksi harus diautentikasi menggunakan akun Orca yang Anda buat di Konsol.

  • Kompatibilitas perintah AUTH: Untuk memastikan kompatibilitas dengan klien yang hanya mendukung autentikasi berbasis password, perintah AUTH Orca mendukung dua format. Saat mengonfigurasi klien, pilih metode autentikasi yang sesuai dengan kemampuan klien tersebut.

    • AUTH <username> <password>: Format standar. Berikan username dan password secara terpisah.

    • AUTH <username>:<password>: Format kompatibilitas. Gabungkan username dan password dengan tanda titik dua (:) dan berikan seluruh string tersebut sebagai parameter password.

  • Kompatibilitas perintah HELLO: Mirip dengan perintah AUTH, bagian autentikasi dari perintah HELLO juga mendukung kedua format yang disebutkan di atas.

    • HELLO <protover> AUTH <username> <password>

    • HELLO <protover> AUTH <username>:<password>

Hubungkan menggunakan redis-cli

  1. Instal redis-cli: Instal redis-cli pada perangkat klien Anda. Untuk informasi lebih lanjut, lihat tutorial instalasi redis-cli.

  2. Menghubungkan ke fitur Orca: Jalankan perintah berikut. Ganti alamat koneksi dan port dengan nilai aktual.

    redis-cli -h pz-****************.rwlb.rds.aliyuncs.com -p 6379
  3. Mengautentikasi koneksi: Setelah koneksi berhasil, gunakan perintah AUTH untuk mengautentikasi. Kedua format berikut didukung. Ganti placeholder dengan username dan password Orca Anda.

    # Format 1: Masukkan username dan password secara terpisah
    AUTH orca_user orca_password
    
    # Format 2: Gabungkan username dan password, lalu masukkan hasilnya sebagai password
    AUTH orca_user:orca_password

    Jika OK dikembalikan, koneksi dan autentikasi berhasil.

Hubungkan menggunakan klien berbagai bahasa

Lihat contoh berikut untuk menghubungkan berdasarkan bahasa pemrograman aplikasi Anda.

Java (Jedis)

  1. Tambahkan konfigurasi dependensi (Maven):

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>4.3.0</version>
    </dependency>
  2. Contoh kode: Untuk kompatibilitas dengan Jedis yang hanya menerima satu parameter password, gunakan format username:password.

    import redis.clients.jedis.Jedis;
    import redis.clients.jedis.JedisPool;
    import redis.clients.jedis.JedisPoolConfig;
    
    public class JedisExample {
        public static void main(String[] args) {
            JedisPoolConfig poolConfig = new JedisPoolConfig();
            
            // Informasi koneksi Orca
            String host = "pz-****************.rwlb.rds.aliyuncs.com"; // Ganti dengan alamat koneksi Orca Anda
            int port = 6379;
            String username = "orca_user"; // Ganti dengan username Orca Anda
            String password = "orca_password"; // Ganti dengan password Orca Anda
    
            // Autentikasi Jedis mengharuskan Anda menggabungkan username dan password
            String authPassword = username + ":" + password;
    
            JedisPool pool = new JedisPool(poolConfig, host, port, 3000, authPassword);
            
            try (Jedis jedis = pool.getResource()) {
                jedis.set("name", "jedis");
                System.out.println(jedis.get("name"));
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                pool.destroy();
            }
        }
    }
    

Java (Lettuce)

  1. Tambahkan konfigurasi dependensi (Maven):

    <dependency>
        <groupId>io.lettuce</groupId>
        <artifactId>lettuce-core</artifactId>
        <version>6.3.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-transport-native-epoll</artifactId>
        <version>4.1.100.Final</version>
        <classifier>linux-x86_64</classifier>
    </dependency>
  2. Contoh kode: Lettuce mendukung pengaturan username dan password secara terpisah. Metode ini direkomendasikan.

    import io.lettuce.core.RedisClient;
    import io.lettuce.core.RedisURI;
    import io.lettuce.core.api.StatefulRedisConnection;
    import io.lettuce.core.api.sync.RedisCommands;
    
    public class LettuceExample {
        public static void main(String[] args) {
            // Informasi koneksi Orca
            String host = "pz-****************.rwlb.rds.aliyuncs.com"; // Ganti dengan alamat koneksi Orca Anda
            int port = 6379;
            String username = "orca_user"; // Ganti dengan username Orca Anda
            String password = "orca_password"; // Ganti dengan password Orca Anda
    
            // Lettuce mendukung pengaturan username dan password secara terpisah
            RedisURI uri = RedisURI.Builder
                    .redis(host, port)
                    .withAuthentication(username, password)
                    .build();
            RedisClient redisClient = RedisClient.create(uri);
    
            StatefulRedisConnection<String, String> connection = redisClient.connect();
    
            RedisCommands<String, String> syncCommands = connection.sync();
    
            syncCommands.set("name", "Lettuce");
            String value = syncCommands.get("name");
            // Output: Lettuce
            System.out.println("Get value: " + value); 
    
            connection.close();
            redisClient.shutdown();
        }
    }

Java (Spring Data Redis)

  1. Tambahkan konfigurasi dependensi (Maven):

    <!-- Proyek induk Spring Boot untuk manajemen versi terpadu -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version> <!-- Disarankan menggunakan versi stabil terbaru -->
        <relativePath/>
    </parent>
    
    <!-- Item konfigurasi lainnya... -->
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.36</version>
        </dependency>
    </dependencies>
    
    <build>
        <plugins>
            <!-- Plugin Maven Spring Boot untuk packaging dan menjalankan -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  2. Contoh kode: Pilih salah satu metode berikut untuk mengonfigurasi pengaturan dan menghubungkan ke Orca.

    Konfigurasi melalui application.yml

    Spring Boot 2.x dan versi selanjutnya mendukung penentuan username dan password secara terpisah dalam application.yml. Ini adalah metode yang direkomendasikan.

    1. Struktur file proyek sebagai berikut:

      test_redis/
      ├── pom.xml
      └── src/
          └── main/
              ├── java/
              │   └── com/
              │       └── example/
              │           ├── MainApplication.java
              │           └── RedisTestRunner.java
              └── resources/
                  └── application.yml
      
    2. Konfigurasi application.yml: Buat file application.yml di direktori src/main/resources/. File ini menyimpan semua informasi konfigurasi.

      spring:
        redis:
          host: pz-****************.rwlb.rds.aliyuncs.com # Ganti dengan alamat koneksi Orca Anda
          port: 6379
          username: orca_user      # Ganti dengan username Orca Anda
          password: orca_password  # Ganti dengan password Orca Anda
          database: 0
          jedis:
            pool:
              max-active: 30
              max-idle: 20
              min-idle: 5
              max-wait: -1ms
    3. Buat kelas startup utama MainApplication.java: Ini adalah titik masuk aplikasi Spring Boot.

      package com.example;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @SpringBootApplication
      public class MainApplication {
          public static void main(String[] args) {
              SpringApplication.run(MainApplication.class, args);
          }
      }
    4. Buat kelas uji RedisTestRunner.java: Kelas ini dijalankan secara otomatis setelah aplikasi Spring Boot dimulai. Kelas ini melakukan operasi baca-tulis Redis dan mencetak hasilnya.

      package com.example;
      
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.boot.CommandLineRunner;
      import org.springframework.data.redis.core.StringRedisTemplate;
      import org.springframework.stereotype.Component;
      
      @Component
      public class RedisTestRunner implements CommandLineRunner {
      
          @Autowired
          private StringRedisTemplate stringRedisTemplate;
      
          @Override
          public void run(String... args) throws Exception {
              System.out.println("=== Memulai uji Redis dengan Spring Data Redis ===");
      
              try {
                  // Definisikan pasangan kunci-nilai
                  String key = "name";
                  String value = "spring-data-redis";
      
                  // 1. Jalankan perintah SET
                  stringRedisTemplate.opsForValue().set(key, value);
                  System.out.println("SET " + key + " = " + value);
      
                  // 2. Jalankan perintah GET
                  String retrievedValue = stringRedisTemplate.opsForValue().get(key);
                  System.out.println("GET " + key + " = " + retrievedValue);
      
                  // 3. Verifikasi hasil
                  if (value.equals(retrievedValue)) {
                      System.out.println("Uji berhasil!");
                  } else {
                      System.out.println("Uji gagal! Nilai yang diambil tidak sesuai.");
                  }
      
              } catch (Exception e) {
                  System.err.println("Operasi Redis gagal: " + e.getMessage());
                  e.printStackTrace();
              }
      
              System.out.println("=== Uji Redis selesai ===");
          }
      }

    Konfigurasi menggunakan Java Config

    Jika Anda menggunakan versi Spring yang lebih lama atau memiliki kebutuhan kustom, Anda dapat menggunakan kelas konfigurasi Java. Karena Jedis digunakan di lapisan bawah, Anda tetap perlu menggabungkan username dan password untuk autentikasi.

    1. Struktur file proyek sebagai berikut:

      test_redis/
      ├── pom.xml
      └── src/
          └── main/
              ├── java/
              │   └── com/
              │       └── example/
              │           ├── config/
              │           │   └── RedisConfig.java   <-- Kelas konfigurasi inti
              │           ├── MainApplication.java
              │           └── RedisTestRunner.java
              └── resources/
                  └── application.yml            <-- File ini bisa dihapus atau dibiarkan kosong
    2. Buat kelas konfigurasi inti RedisConfig.java: Di kelas ini, Anda dapat membuat bean RedisConnectionFactory secara manual dan menentukan semua detail koneksi. Spring Boot secara otomatis mendeteksi bean ini dan menggunakannya untuk mengonfigurasi semua operasi terkait Redis, seperti StringRedisTemplate.

      package com.example.config;
      
      import org.springframework.context.annotation.Bean;
      import org.springframework.context.annotation.Configuration;
      import org.springframework.data.redis.connection.RedisConnectionFactory;
      import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
      import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
      
      @Configuration
      public class RedisConfig {
      
          @Bean
          public RedisConnectionFactory redisConnectionFactory() {
              // 1. Buat konfigurasi Redis standalone
              RedisStandaloneConfiguration redisConfig = new RedisStandaloneConfiguration();
      
              // 2. Atur informasi koneksi Orca
              // Ganti dengan alamat koneksi Orca Anda
              redisConfig.setHostName("pz-****************.rwlb.rds.aliyuncs.com"); 
              // Port Orca, default-nya 6379
              redisConfig.setPort(6379);
              // Ganti dengan username Orca Anda
              redisConfig.setUsername("orca_user");
              // Ganti dengan password Orca Anda
              redisConfig.setPassword("orca_password");
              
              // 3. Gunakan Lettuce sebagai client dan terapkan konfigurasi di atas
              LettuceConnectionFactory lettuceFactory = new LettuceConnectionFactory(redisConfig);
              
              // Opsional: Jika Anda tidak memanggil afterPropertiesSet, container Spring akan memanggilnya secara otomatis saat menginisialisasi bean.
              // lettuceFactory.afterPropertiesSet();
      
              // 4. Kembalikan instance connection factory yang telah dikonfigurasi
              return lettuceFactory;
          }
      }
      
    3. Buat kelas startup utama MainApplication.java: Ini adalah titik masuk aplikasi Spring Boot.

      package com.example;
      
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @SpringBootApplication
      public class MainApplication {
          public static void main(String[] args) {
              SpringApplication.run(MainApplication.class, args);
          }
      }
    4. Buat kelas uji RedisTestRunner.java: Kelas ini dijalankan secara otomatis setelah aplikasi Spring Boot dimulai. Kelas ini melakukan operasi baca-tulis Redis dan mencetak hasilnya.

    5. package com.example;
      
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.boot.CommandLineRunner;
      import org.springframework.data.redis.core.StringRedisTemplate;
      import org.springframework.stereotype.Component;
      
      @Component
      public class RedisTestRunner implements CommandLineRunner {
      
          @Autowired
          private StringRedisTemplate stringRedisTemplate;
      
          @Override
          public void run(String... args) throws Exception {
              System.out.println("=== Memulai uji Redis dengan Spring Data Redis ===");
      
              try {
                  // Definisikan pasangan kunci-nilai
                  String key = "name";
                  String value = "spring-data-redis";
      
                  // 1. Jalankan perintah SET
                  stringRedisTemplate.opsForValue().set(key, value);
                  System.out.println("SET " + key + " = " + value);
      
                  // 2. Jalankan perintah GET
                  String retrievedValue = stringRedisTemplate.opsForValue().get(key);
                  System.out.println("GET " + key + " = " + retrievedValue);
      
                  // 3. Verifikasi hasil
                  if (value.equals(retrievedValue)) {
                      System.out.println("Uji berhasil!");
                  } else {
                      System.out.println("Uji gagal! Nilai yang diambil tidak sesuai.");
                  }
      
              } catch (Exception e) {
                  System.err.println("Operasi Redis gagal: " + e.getMessage());
                  e.printStackTrace();
              }
      
              System.out.println("=== Uji Redis selesai ===");
          }
      }

Python (redis-py)

  1. Instal dependensi:

    pip install redis
  2. Contoh kode: redis-py versi 4.2 dan setelahnya mendukung parameter username terpisah. Jika Anda menggunakan versi sebelumnya, gunakan format username:password untuk parameter password.

    import redis
    
    # Informasi koneksi Orca
    host = 'pz-****************.rwlb.rds.aliyuncs.com'  # Ganti dengan alamat koneksi Orca Anda
    port = 6379
    username = 'orca_user'  # Ganti dengan username Orca Anda
    password = 'orca_password'  # Ganti dengan password Orca Anda
    
    # Metode yang direkomendasikan (redis-py >= 4.2)
    r = redis.Redis(host=host, port=port, username=username, password=password)
    
    # Metode untuk kompatibilitas dengan versi sebelumnya
    # auth_password = f'{username}:{password}'
    # r = redis.Redis(host=host, port=port, password=auth_password)
    
    r.set('name', 'redis-py')
    print(r.get('name').decode('utf-8'))
    r.close()
    

Go (go-redis)

  1. Instal dependensi:

    go get github.com/go-redis/redis/v8
  2. Contoh kode: go-redis mendukung field Username terpisah. Metode ini direkomendasikan. Jika Anda menggunakan versi klien yang lebih lama, gunakan username:password sebagai nilai untuk field Password.

    package main
    
    import (
        "context"
        "fmt"
        "github.com/go-redis/redis/v8"
    )
    
    var ctx = context.Background()
    
    func main() {
        client := redis.NewClient(&redis.Options{
            Addr:     "pz-****************.rwlb.rds.aliyuncs.com:6379", // Ganti dengan alamat dan port Orca Anda
            Username: "orca_user",     // Ganti dengan username Orca Anda
            Password: "orca_password", // Ganti dengan password Orca Anda
            DB:       0,
        })
    
        err := client.Set(ctx, "name", "go-redis", 0).Err()
        if err != nil {
            panic(err)
        }
    
        val, err := client.Get(ctx, "name").Result()
        if err != nil {
            panic(err)
        }
        fmt.Println("Get value:", val)
    }
    

Node.js (node-redis)

  1. Instal dependensi:

    npm install redis
  2. Contoh kode: node-redis mendukung penyertaan informasi autentikasi dalam URL koneksi.

    import { createClient } from 'redis';
    
    // Informasi koneksi Orca
    const host = 'pz-****************.rwlb.rds.aliyuncs.com'; // Ganti dengan alamat koneksi Orca Anda
    const port = 6379;
    const username = 'orca_user'; // Ganti dengan username Orca Anda
    const password = 'orca_password'; // Ganti dengan password Orca Anda
    
    const client = createClient({
        url: `redis://${username}:${encodeURIComponent(password)}@${host}:${port}/0`
    });
    
    client.on('error', (err) => console.error('Redis Client Error:', err));
    
    async function runExample() {
        try {
            await client.connect();
            await client.set('name', 'node-redis');
            const value = await client.get('name');
            console.log('get name:', value);
        } finally {
            await client.disconnect();
        }
    }
    
    runExample();
    

PHP (PhpRedis)

  1. Instal dependensi: Biasanya dapat diinstal menggunakan Manajer paket. Misalnya, pada CentOS:

    sudo yum install php-redis
  2. Contoh kode: Metode auth ekstensi PhpRedis mendukung pengiriman array yang berisi username dan password.

    <?php
    $redis = new Redis();
    
    // Informasi koneksi Orca
    $host = 'pz-****************.rwlb.rds.aliyuncs.com'; // Ganti dengan alamat koneksi Orca Anda
    $port = 6379;
    $user = 'orca_user';     // Ganti dengan username Orca Anda
    $password = 'orca_password'; // Ganti dengan password Orca Anda
    
    if ($redis->connect($host, $port) === false) {
        die($redis->getLastError());
    }
    
    // Autentikasi menggunakan array yang berisi username dan password
    if ($redis->auth([$user, $password]) === false) {
        die($redis->getLastError());
    }
    
    $redis->set("name", "php-redis");
    echo $redis->get("name");
    
    $redis->close();
    ?>
    

C (Hiredis)

  1. Instal dependensi: Kompilasi dan instal dari kode sumber.

    git clone https://github.com/redis/hiredis.git
    cd hiredis
    make && sudo make install
  2. Contoh kode: Gunakan redisCommand untuk menjalankan perintah AUTH. Anda dapat menggunakan format gabungan username:password.

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <hiredis.h>
    
    int main() {
        // Parameter koneksi Orca
        const char *hostname = "********.rwlb.rds.aliyuncs.com"; // Ganti dengan alamat koneksi Orca Anda
        int port = 6379;
        // Definisikan username dan password secara terpisah agar mudah digunakan
        const char *username = "orca_user"; // Ganti dengan username Orca Anda
        const char *password = "orca_password"; // Ganti dengan password Orca Anda
    
        redisContext *c;
        redisReply *reply;
    
        // 1. Hubungkan ke Redis (disarankan menggunakan koneksi dengan timeout)
        struct timeval timeout = { 2, 0 }; // Timeout 2 detik
        c = redisConnectWithTimeout(hostname, port, timeout);
        if (c == NULL || c->err) {
            if (c) {
                printf("Kesalahan koneksi: %s\n", c->errstr);
                redisFree(c);
            } else {
                printf("Tidak dapat mengalokasikan konteks redis\n");
            }
            exit(1);
        }
    
        // 2. Autentikasi
        // Gunakan format "AUTH <username> <password>"
        reply = redisCommand(c, "AUTH %s %s", username, password);
        if (reply == NULL) {
            // Jika reply bernilai NULL, terjadi kesalahan I/O. Periksa c->errstr
            printf("Perintah AUTH gagal: %s\n", c->errstr);
            redisFree(c);
            exit(1);
        }
        // Periksa apakah reply itu sendiri merupakan tipe error
        if (reply->type == REDIS_REPLY_ERROR) {
            printf("Autentikasi gagal: %s\n", reply->str);
            freeReplyObject(reply);
            redisFree(c);
            exit(1);
        }
        printf("Autentikasi berhasil\n");
        freeReplyObject(reply); // Setelah autentikasi berhasil, jangan lupa bebaskan reply
    
        // 3. Jalankan perintah SET
        reply = redisCommand(c, "SET mykey %s", "Hello, hiredis!");
        if (reply == NULL) {
            printf("Perintah SET gagal: %s\n", c->errstr);
            redisFree(c);
            exit(1);
        }
    
        // Untuk perintah SET yang berhasil, hiredis mengembalikan reply bertipe STATUS
        if (reply->type == REDIS_REPLY_STATUS && strcmp(reply->str, "OK") == 0) {
            printf("SET mykey berhasil\n");
        } else {
            printf("SET gagal dengan reply: %s\n", reply->str);
        }
        freeReplyObject(reply);
    
        // 4. Jalankan perintah GET
        reply = redisCommand(c, "GET mykey");
        if (reply == NULL) {
            printf("Perintah GET gagal: %s\n", c->errstr);
            redisFree(c);
            exit(1);
        }
    
        if (reply->type == REDIS_REPLY_STRING) {
            printf("GET mykey = %s\n", reply->str);
        } else if (reply->type == REDIS_REPLY_NIL) {
            printf("Kunci 'mykey' tidak ada\n");
        } else {
            printf("GET mengembalikan tipe tak terduga: %d, error: %s\n", reply->type, reply->str);
        }
        freeReplyObject(reply);
    
        // 5. Tutup koneksi
        redisFree(c);
        printf("Terputus dari Redis\n");
    
        return 0;
    }
  3. Kompilasi dan jalankan.

    # Kompilasi. Sesuaikan path setelah -I dan -L berdasarkan lokasi instalasi aktual Anda
    gcc -o orca orca.c -I/usr/local/include/hiredis -L/usr/local/lib -lhiredis
    
    # Jalankan
    ./orca

Hubungkan menggunakan DMS

Menghubungkan ke Orca

  1. Masuk ke Data Management (DMS).

  2. Pada bilah menu atas, pilih Data Assets > Instance Management.

    image

  3. Klik Add, pilih Other Cloud/Self-managed, lalu pilih Redis dari bagian NoSQL Databases.

    image

  4. Klik Next untuk membuka halaman Basic Information. Konfigurasikan parameter seperti dijelaskan di bawah ini.

    • Atur Instance Source ke VPC Leased Line. Atur Instance Region ke wilayah tempat kluster PolarDB berada atau wilayah terdekat. Atur VPC ID ke VPC kluster PolarDB. Anda dapat menemukan VPC ID di halaman produk. Untuk Logon Address, masukkan alamat koneksi Orca.

    • Atur Access Mode ke Security Hosting + Manual. Di bidang Database Account dan Password, masukkan kredensial akun Orca.

    • Setelah memasukkan informasi, klik Test Connection. Jika pengujian berhasil, pesan sukses akan ditampilkan.

    image

  5. Klik Next untuk membuka halaman Advanced Information. Konfigurasikan pengaturan sesuai kebutuhan.

    Catatan

    Perhatikan bahwa Orca saat ini tidak mendukung pengaktifan SSL.

    image

  6. Klik Submit. Jika pengiriman berhasil, instans Orca memasuki status security hosting.

    image

Manajemen data

  1. Pada bilah menu atas, klik SQL Window dan pilih kluster Orca yang berada dalam status security hosting.

  2. Orca saat ini hanya mendukung satu database Redis logis, yaitu DB0. Jika Anda tidak melihat database saat ini DB0, klik Refresh / Sync Dictionary.

    image

  3. Jika tidak ditemukan anomali, Anda dapat menggunakan DMS untuk mengelola Orca.

    image