All Products
Search
Document Center

Tair (Redis® OSS-Compatible):Hubungkan ke instans menggunakan mode kompatibel Sentinel

Last Updated:Mar 26, 2026

Tair (Redis OSS-compatible) menggunakan komponen ketersediaan tinggi (HA) proprietary dan tidak bergantung pada Sentinel. Namun, untuk meningkatkan kompatibilitas instans serta meminimalkan perubahan kode bagi pengguna, Tair (Redis OSS-compatible) menyediakan mode kompatibel Sentinel. Setelah fitur ini diaktifkan, Anda dapat menghubungkan ke instans Tair atau Redis Open-Source Edition dengan cara yang sama seperti saat menghubungkan ke pengaturan Redis Sentinel native.

Redis Sentinel

Redis Sentinel menyediakan layanan untuk Redis open-source, seperti pemantauan instans master/replica, notifikasi kegagalan, dan failover otomatis. Sentinel banyak digunakan dalam skenario bisnis yang menggunakan database Redis on-premises yang dikelola sendiri dan memerlukan keandalan tinggi. Untuk mempermudah migrasi database Redis dalam skenario tersebut ke cloud, Alibaba Cloud mengembangkan mode kompatibel Sentinel. Setelah Anda mengaktifkan mode kompatibel Sentinel, Anda dapat menggunakan perintah terkait Sentinel berikut. Nama master dalam perintah-perintah ini harus diatur sebagai redis_master.

Command

Description

SENTINEL sentinels

Menanyakan instans Sentinel dari Master tertentu dan status instans- instans Sentinel tersebut. Sintaks berikut digunakan:

SENTINEL sentinels redis_master

SENTINEL get-master-addr-by-name

Menanyakan alamat IP dan nomor port dari Master tertentu. Sintaks berikut digunakan:

SENTINEL get-master-addr-by-name redis_master

Untuk informasi lebih lanjut tentang perintah Sentinel yang didukung oleh berbagai versi, lihat Dukungan perintah Redis Open-Source Edition.

Prasyarat

  • Anda telah mengaktifkan mode kompatibel Sentinel.

  • Anda telah menambahkan alamat IP client Anda ke daftar putih alamat IP instans. Alamat ini dapat berupa alamat IP internal dari instance ECS atau alamat IP publik dari host on-premises.

Contoh koneksi

Setelah Anda mengaktifkan mode kompatibel Sentinel, Anda dapat menghubungkan ke instans dengan dua cara. Jika akses tanpa password melalui Virtual Private Cloud (VPC) diaktifkan untuk instans, Anda dapat terhubung tanpa password. Jika tidak, autentikasi diperlukan.

Koneksi Sentinel tanpa password

Catatan

Untuk informasi lebih lanjut tentang cara mengaktifkan akses tanpa password melalui VPC, lihat Aktifkan akses tanpa password.

Contoh berikut menunjukkan cara mengonfigurasi koneksi dalam mode kompatibel Sentinel.

Spring Data Redis

Contoh ini menggunakan Spring Data Redis 2.4.2.

    @Bean
    public JedisConnectionFactory connectionFactory() {
        RedisSentinelConfiguration sentinelConfig = new RedisSentinelConfiguration()
                .master("redis_master")
                .sentinel("r-bp10noxlhcoim2****.redis.rds.aliyuncs.com", 6379);
        JedisPoolConfig poolConfig = new JedisPoolConfig();
        ...
        JedisConnectionFactory connectionFactory = new JedisConnectionFactory(sentinelConfig, poolConfig);
        return connectionFactory;
    }

Parameter:

  • master: Nama Sentinel. Harus diatur ke redis_master.

  • sentinel: Titik akhir VPC dan nomor port instans, diberikan sebagai argumen terpisah ke metode sentinel. Misalnya, "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com", 6379.

redis-py

Contoh ini menggunakan Python 3.9 dan redis-py 4.3.6.

from redis.sentinel import Sentinel
SENTINEL_HOST = "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com"
SENTINEL_PORT = 6379
SENTINEL_MASTER_NAME = "redis_master"

sentinel = Sentinel([(SENTINEL_HOST, SENTINEL_PORT)])
r = sentinel.master_for(SENTINEL_MASTER_NAME, db=0)
r.set('foo', 'bar')
print(r.get('foo'))

Parameter:

  • SENTINEL_HOST dan SENTINEL_PORT: Titik akhir VPC dan nomor port instans.

  • SENTINEL_MASTER_NAME: Nama Sentinel. Harus diatur ke redis_master.

Koneksi Sentinel dengan password

Contoh berikut menunjukkan cara mengonfigurasi koneksi dengan password dalam mode kompatibel Sentinel.

Java

Untuk menggunakan koneksi Sentinel dengan password, client Anda harus memenuhi persyaratan versi minimum berikut:

  • Jedis 3.10.0 atau yang lebih baru.

  • Lettuce 6.3.0.RELEASE atau yang lebih baru.

  • Spring Data Redis 2.5.1 atau yang lebih baru. Anda juga harus mengonfigurasi parameter spring.redis.sentinel.password.

Catatan

Kami menyarankan Anda melakukan upgrade client ke versi stabil terbaru. Untuk menemukan versi terbaru, cari di MVN Repository.

Jedis

        String masterName = "redis_master";
        Set<String> sentinels = new HashSet<>();
        sentinels.add("r-bp10noxlhcoim2****.redis.rds.aliyuncs.com:6379");
        GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
        String dbPassword = "testaccount:Rp829dlwa";
        String sentinelPassword = "testaccount:Rp829dlwa";
        JedisSentinelPool jedisSentinelPool =
                new JedisSentinelPool(masterName, sentinels, poolConfig,
                        2000, 2000, dbPassword,
                        0, null, 2000, 2000,
                        sentinelPassword, null);

Lettuce

    String masterName = "redis_master";
    String sentinelNodes = "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com:6379";
    String sentinelPassword = "testaccount:Rp829dlwa";
    RedisURI redisURI = RedisURI.create("redis-sentinel://" + sentinelPassword + "@" + sentinelNodes + "#" + masterName);
    redisURI.getSentinels().forEach(it -> it.setPassword(sentinelPassword));
    RedisClient client = RedisClient.create(redisURI);
    RedisCommands<String, String> sync = client.connect().sync();
    System.out.println(sync.set("key", "value"));
    System.out.println(sync.get("key"));
    client.close();

Parameter:

  • masterName: Nama Sentinel. Harus diatur ke redis_master.

  • sentinels.add/sentinelNodes: Titik akhir VPC dan nomor port instans, dalam format r-bp10noxlhcoim2****.redis.rds.aliyuncs.com:6379.

  • dbPassword dan sentinelPassword: Password untuk akun instans. Format password tergantung pada jenis akun. Untuk mengatur ulang password yang lupa, lihat Ubah atau atur ulang password.

    Catatan
    • Untuk akun default, yang dinamai sesuai ID instans, masukkan hanya password-nya.

    • Untuk akun kustom, format password adalah <user>:<password>. Format ini juga didukung untuk akun default. Sebagai contoh, jika username adalah testaccount dan password adalah Rp829dlwa, gunakan testaccount:Rp829dlwa.

redis-py

Contoh ini menggunakan Python 3.9 dan redis-py 4.3.6.

from redis.sentinel import Sentinel
SENTINEL_HOST = "r-bp10noxlhcoim2****.rds.aliyuncs.com"
SENTINEL_PORT = 6379
SENTINEL_MASTER_NAME = "redis_master"  # Catatan: Nama ini tidak dapat diubah.
SENTINEL_REDIS_PWD = "testaccount:Rp829dlwa"

conf = {
    'password': SENTINEL_REDIS_PWD,
}

sentinel = Sentinel([(SENTINEL_HOST, SENTINEL_PORT)], sentinel_kwargs=conf)
r = sentinel.master_for(SENTINEL_MASTER_NAME, db=0, **conf)
r.set('foo', 'bar')
print(r.get('foo'))

Parameter:

  • SENTINEL_HOST dan SENTINEL_PORT: Titik akhir VPC dan nomor port instans.

  • SENTINEL_MASTER_NAME: Nama Sentinel. Harus diatur ke redis_master.

  • SENTINEL_REDIS_PWD: Password untuk akun instans.

FAQ

  • Q: Mengapa saya mendapatkan error NOAUTH Authentication required setelah beralih dari pengaturan Redis Sentinel yang dikelola sendiri ke mode kompatibel Sentinel?

    A: Aktifkan parameter #no_loose_sentinel-password-free-access dengan mengaturnya ke yes. Ini memungkinkan koneksi Sentinel tanpa password melalui titik akhir VPC tanpa mengaktifkan fitur akses tanpa password global.

    Jika instans Anda menjalankan versi Redis sebelum 6.0, lakukan upgrade client dan modifikasi kode Anda untuk menyertakan password autentikasi Sentinel sebelum mencoba koneksi lagi. Untuk informasi lebih lanjut, lihat bagian Koneksi Sentinel dengan password dalam topik ini.

  • Q: Mengapa saya menerima error Unknown sentinel subcommand 'MASTERS'?

    A: Error ini menunjukkan bahwa versi minor instans Anda tidak mendukung perintah ini. Perbarui versi minor dan coba lagi.