All Products
Search
Document Center

PolarDB:Koneksi Orca

Last Updated:Jun 22, 2026

Fitur Orca dari PolarDB for MySQL kompatibel dengan protokol Redis, sehingga memungkinkan Anda menghubungkan ke database menggunakan client Redis utama. Panduan ini mencakup prasyarat dan menyediakan contoh kode koneksi client untuk beberapa bahasa pemrograman populer.

Prasyarat

Sebelum menghubungkan ke Orca, pastikan Anda memenuhi prasyarat berikut:

Catatan penggunaan

  • Mekanisme autentikasi: Orca dan Redis native menggunakan mekanisme autentikasi yang berbeda. Orca tidak memiliki pengguna default. Semua koneksi harus diautentikasi dengan akun Orca yang dibuat di Konsol.

  • Kompatibilitas perintah AUTH: Untuk mendukung client yang hanya mendukung autentikasi berbasis password, perintah AUTH Orca mendukung dua format.

    • 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 string gabungan tersebut sebagai satu parameter password.

  • Kompatibilitas perintah HELLO: Seperti perintah AUTH, autentikasi untuk perintah HELLO juga mendukung kedua format yang dijelaskan di atas.

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

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

Hubungkan dengan redis-cli

  1. Instal redis-cli: Lihat tutorial Instal redis-cli untuk menginstalnya di perangkat client Anda.

  2. Hubungkan ke Orca: Jalankan perintah berikut. Ganti endpoint dan port dengan detail koneksi aktual Anda.

    redis-cli -h pz-****************.rwlb.rds.aliyuncs.com -p 6379
  3. Autentikasi koneksi Anda: Setelah terhubung, gunakan perintah AUTH untuk melakukan autentikasi. Anda dapat menggunakan salah satu dari format berikut. Ganti placeholder dengan akun dan password Orca Anda.

    # Format 1: Berikan username dan password secara terpisah.
    AUTH orca_user orca_password
    # Format 2: Berikan username dan password yang digabung sebagai password.
    AUTH orca_user:orca_password

    Nilai kembali OK menunjukkan koneksi dan autentikasi berhasil.

Hubungkan dengan pustaka client

Gunakan contoh berikut untuk menghubungkan dari aplikasi Anda.

Java (Jedis)

  1. Tambahkan dependensi Maven:

    <dependency>
        <groupId>redis.clients</groupId>
        <artifactId>jedis</artifactId>
        <version>4.3.0</version>
    </dependency>
  2. Contoh kode: Karena Jedis hanya menerima satu parameter password, Anda harus menggunakan 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();
            // Detail koneksi Orca
            String host = "pz-****************.rwlb.rds.aliyuncs.com"; // Ganti dengan endpoint 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 memerlukan penggabungan 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 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 parameter username dan password terpisah (disarankan).

    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) {
            // Detail koneksi Orca
            String host = "pz-****************.rwlb.rds.aliyuncs.com"; // Ganti dengan endpoint 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 parameter username dan password 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 dependensi Maven:

    <!-- Proyek induk Spring Boot untuk manajemen versi -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.18</version> <!-- Kami menyarankan agar Anda menggunakan versi stabil terbaru. -->
        <relativePath/>
    </parent>
    <!-- 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 pengemasan dan menjalankan aplikasi -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
  2. Contoh kode: Anda dapat memilih salah satu metode berikut untuk mengonfigurasi koneksi ke Orca.

    application.yml

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

    1. Struktur file proyek adalah sebagai berikut:

      test_redis/
      ├── pom.xml
      └── src/
          └── main/
              ├── java/
              │   └── com/
              │       └── example/
              │           ├── MainApplication.java
              │           └── RedisTestRunner.java
              └── resources/
                  └── application.yml
      
    2. Konfigurasikan 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 endpoint 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 aplikasi utama MainApplication.java. Ini adalah titik masuk untuk 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 runner pengujian RedisTestRunner.java. Kelas ini secara otomatis berjalan setelah aplikasi Spring Boot dimulai, 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 pengujian 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 hasilnya.
                  if (value.equals(retrievedValue)) {
                      System.out.println("Pengujian berhasil!");
                  } else {
                      System.out.println("Pengujian gagal! Nilai yang diambil tidak sesuai.");
                  }
              } catch (Exception e) {
                  System.err.println("Operasi Redis gagal: " + e.getMessage());
                  e.printStackTrace();
              }
              System.out.println("=== Pengujian Redis selesai ===");
          }
      }

    Java Config

    Jika Anda menggunakan versi Spring yang lebih lama atau memiliki kebutuhan kustom, Anda dapat menggunakan kelas konfigurasi Java. Contoh berikut menggunakan LettuceConnectionFactory, yang memungkinkan Anda menentukan username dan password secara terpisah.

    1. Struktur file proyek adalah 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 dapat dihapus atau dibiarkan kosong.
    2. Buat kelas konfigurasi inti RedisConfig.java. Di kelas ini, Anda membuat dan mengonfigurasi bean RedisConnectionFactory secara manual dengan semua detail koneksi. Spring Boot secara otomatis mendeteksi bean ini dan menggunakannya untuk 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 detail koneksi Orca.
              // Ganti dengan endpoint Orca Anda.
              redisConfig.setHostName("pz-****************.rwlb.rds.aliyuncs.com"); 
              // Port Orca. Nilai default adalah 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.
              LettuceConnectionFactory lettuceFactory = new LettuceConnectionFactory(redisConfig);
              // Opsional: Jika Anda tidak memanggil afterPropertiesSet(), kontainer Spring akan memanggilnya secara otomatis saat menginisialisasi bean.
              // lettuceFactory.afterPropertiesSet();
              // 4. Kembalikan instance factory koneksi yang telah dikonfigurasi.
              return lettuceFactory;
          }
      }
      
    3. Buat kelas aplikasi utama MainApplication.java. Ini adalah titik masuk untuk 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 runner pengujian RedisTestRunner.java. Kelas ini secara otomatis berjalan setelah aplikasi Spring Boot dimulai, 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 pengujian 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 hasilnya.
                  if (value.equals(retrievedValue)) {
                      System.out.println("Pengujian berhasil!");
                  } else {
                      System.out.println("Pengujian gagal! Nilai yang diambil tidak sesuai.");
                  }
              } catch (Exception e) {
                  System.err.println("Operasi Redis gagal: " + e.getMessage());
                  e.printStackTrace();
              }
              System.out.println("=== Pengujian Redis selesai ===");
          }
      }

Python (redis-py)

  1. Instal dependensi:

    pip install redis
  2. Contoh kode: redis-py 4.2+ mendukung parameter username terpisah. Pada versi lama, berikan string username:password sebagai parameter password.

    import redis
    # Detail koneksi Orca
    host = 'pz-****************.rwlb.rds.aliyuncs.com'  # Ganti dengan endpoint Orca Anda
    port = 6379
    username = 'orca_user'  # Ganti dengan username Orca Anda
    password = 'orca_password'  # Ganti dengan password Orca Anda
    # Metode yang disarankan (redis-py >= 4.2)
    r = redis.Redis(host=host, port=port, username=username, password=password)
    # Metode kompatibilitas untuk versi lama
    # 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 bidang Username terpisah (disarankan). Pada versi lama, berikan string username:password sebagai bidang 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 endpoint 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';
    // Detail koneksi Orca
    const host = 'pz-****************.rwlb.rds.aliyuncs.com'; // Ganti dengan endpoint 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: Anda biasanya dapat menginstal ekstensi ini menggunakan Manajer paket. Misalnya, pada CentOS:

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

    <?php
    $redis = new Redis();
    // Detail koneksi Orca
    $host = 'pz-****************.rwlb.rds.aliyuncs.com'; // Ganti dengan endpoint 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());
    }
    // Lakukan autentikasi dengan 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 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 endpoint Orca Anda
        int port = 6379;
        // Definisikan username dan password secara terpisah untuk kemudahan penggunaan.
        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. Kami menyarankan agar Anda 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. Lakukan 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 program.

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

Hubungkan dengan DMS

Hubungkan ke Orca

  1. Masuk ke Konsol Database Management (DMS).

  2. Pada bilah navigasi atas, pilih Data Assets > Instances.

  3. Klik Add, pilih Third-party Cloud/Self-managed, lalu pilih Redis dari bagian NoSQL Database.

    image

  4. Klik Next untuk menuju halaman informasi dasar. Konfigurasikan parameter sebagai berikut:

    • Untuk Instance Source, pilih VPC PrivateLine. Untuk Region, pilih wilayah tempat kluster PolarDB Anda berada atau wilayah terdekat. Untuk VPC ID, pilih ID VPC dari halaman detail kluster PolarDB. Untuk Logon Address, masukkan endpoint Orca.

    • Untuk Access Method, pilih Account + password login. Masukkan akun database dan password akun Orca Anda.

    • Setelah mengisi informasi, klik Test Connectivity. Pesan sukses akan muncul jika koneksi berhasil.

    image

  5. Klik Next untuk menuju halaman Advanced Information dan konfigurasikan pengaturan sesuai kebutuhan.

    Catatan

    Orca saat ini tidak mendukung enkripsi SSL.

    image

  6. Klik Submit. Jika berhasil, instans Orca akan masuk ke mode Secure Management.

    image

Kelola data

  1. Pada bilah navigasi atas, pilih SQL Console dan pilih kluster Orca yang dikelola Anda.

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

    image

  3. Anda sekarang dapat mengelola Orca menggunakan DMS.

    Sebagai contoh, jalankan perintah ping key01 di SQL Console. Nilai kembali PONG menunjukkan koneksi berhasil.