Tüm Ürünler
Search
Belge Merkezi

Tair (Redis® OSS-Compatible):Sentinel uyumlu modu kullanarak bağlanma

Son Güncelleme:Oct 03, 2026

Tair (Redis OSS-compatible) özel bir yüksek kullanılabilirlik (HA) bileşeni kullanır ve Sentinel'a dayanmaz. Ancak uyumluluğu artırmak ve kod değişiklikleri ihtiyacını azaltmak amacıyla Tair (Redis OSS-compatible) Sentinel uyumlu bir mod sunar. Bu özelliği etkinleştirdikten sonra Tair ve Redis Open-Source Edition örneklerine, kendi yönettiğiniz bir Redis Sentinel dağıtımına bağlandığınız şekilde bağlanabilirsiniz.

Redis Sentinel

Redis Sentinel; açık kaynaklı Redis için master ve çoğaltma düğümlerini izleme, hata bildirimleri ve otomatik yük devretme gibi özellikler sağlar. Kendi yönettiğiniz bir Redis veritabanı kullanan birçok yüksek güvenilirlikli uygulama Sentinel'a dayanır. Bu veritabanlarının cloud ortamına geçişini basitleştirmek için Alibaba Cloud Sentinel uyumlu modu geliştirmiştir. Bu modu etkinleştirdikten sonra aşağıdaki Sentinel komutlarını kullanabilirsiniz. Bu komutlarda master adı mutlaka redis_master olarak ayarlanmalıdır.

Komut

Açıklama

SENTINEL sentinels

Belirtilen bir master'ı izleyen Sentinel örnekleri hakkında bilgi döndürür. Kullanım:

SENTINEL sentinels redis_master

SENTINEL get-master-addr-by-name

Belirtilen bir master'ın IP adresini ve bağlantı noktasını döndürür. Kullanım:

SENTINEL get-master-addr-by-name redis_master

Farklı sürümlerdeki Sentinel komut desteği hakkında daha fazla bilgi için bkz. Redis Open-Source Edition komut desteği.

Ön koşullar

  • Sentinel uyumlu mod etkinleştirilmiştir.

  • İstemcinizin IP adresi (örneğin bir ECS örneğinin dahili IP adresi veya şirket içi bir ana bilgisayarın genel IP adresi) örneğin IP izin listesinde yer almalıdır.

Bağlantı örnekleri

Sentinel uyumlu modu etkinleştirdikten sonra örneğe şifre ile veya şifresiz olarak bağlanabilirsiniz. Örnek için VPC içinde şifresiz erişim etkinleştirildiyse şifre gerekmez. Aksi takdirde kimlik doğrulama bilgilerini sağlamanız gerekir.

Şifresiz bağlantı

Not

VPC'de şifresiz erişimin nasıl etkinleştirileceği hakkında daha fazla bilgi için bkz. VPC'de şifresiz erişimi etkinleştirme.

Aşağıdaki kod, şifre kullanmadan Sentinel uyumlu modu kullanarak bir örneğe nasıl bağlanılacağını gösterir.

Spring Data Redis

Bu örnekte Spring Data Redis 2.4.2 kullanılmaktadır.

    @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;
    }

Parametreler:

  • master: Master adı. Bu değer mutlaka redis_master olarak ayarlanmalıdır.

  • sentinel: Örneğin VPC uç noktası ve bağlantı noktası numarası virgül (,) ile ayrılmış şekilde, örneğin "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com", 6379.

redis-py

Bu örnekte Python 3.9 ve redis-py 4.3.6 kullanılmaktadır.

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'))

Parametreler:

  • SENTINEL_HOST ve SENTINEL_PORT: Örneğin VPC uç noktası ve bağlantı noktası numarası.

  • SENTINEL_MASTER_NAME: Master adı. Bu değer mutlaka redis_master olarak ayarlanmalıdır.

Şifre tabanlı bağlantı

Aşağıdaki kod, şifre kullanarak Sentinel uyumlu modu aracılığıyla bir örneğe nasıl bağlanılacağını gösterir.

Java

Bu örnekte minimum gerekli istemci sürümleri kullanılmıştır. İstemcilerinizin aşağıdaki sürüm gereksinimlerini karşılaması gerekir:

  • Jedis 3.10.0 veya sonraki bir sürüm.

  • Lettuce 6.3.0.RELEASE veya sonraki bir sürüm.

  • Spring Data Redis 2.5.1 veya sonraki bir sürüm. Ayrıca spring.redis.sentinel.password parametresini yapılandırmanız gerekir.

Not

İstemcinizi en son kararlı sürüme yükseltmenizi önemle tavsiye ederiz. En son sürümü bulmak için MVN Repository sitesinde arama yapın.

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();

Parametreler:

  • masterName: Master adı. Bu değer mutlaka redis_master olarak ayarlanmalıdır.

  • sentinels.add/sentinelNodes: Örneğin VPC uç noktası ve bağlantı noktası numarası, r-bp10noxlhcoim2****.redis.rds.aliyuncs.com:6379 biçiminde.

  • dbPassword ve sentinelPassword: Örnek hesabının parolası. Parolayı unuttuysanız sıfırlayabilirsiniz. Daha fazla bilgi için bkz. Parolayı değiştirme veya sıfırlama.

    Not
    • Kullanıcı adı örnek kimliğiyle aynı olan varsayılan bir hesap için yalnızca parolayı girin.

    • Yeni oluşturulan bir hesap için <user>:<password> biçimini kullanın. Bu biçim varsayılan hesap için de desteklenir. Örneğin, kullanıcı adı testaccount ve parola Rp829dlwa ise testaccount:Rp829dlwa girin.

redis-py

Bu örnekte Python 3.9 ve redis-py 4.3.6 kullanılmaktadır.

from redis.sentinel import Sentinel
SENTINEL_HOST = "r-bp10noxlhcoim2****.rds.aliyuncs.com"
SENTINEL_PORT = 6379
SENTINEL_MASTER_NAME = "redis_master"  # Note: This name cannot be changed.
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'))

Parametreler:

  • SENTINEL_HOST ve SENTINEL_PORT: Örneğin VPC uç noktası ve bağlantı noktası numarası.

  • SENTINEL_MASTER_NAME: Master adı. Bu değer mutlaka redis_master olarak ayarlanmalıdır.

  • SENTINEL_REDIS_PWD: Örnek hesabının parolası.

SSS

  • S: Kendi yönettiğiniz bir Redis Sentinel dağıtımından Sentinel uyumlu moda geçtikten sonra NOAUTH Authentication required hatası alırsam ne yapmalıyım?

    C: #no_loose_sentinel-password-free-access parametresini yes olarak ayarlayarak etkinleştirebilirsiniz. Bu, genel VPC şifresiz erişim özelliğini etkinleştirmeden bir VPC uç noktası üzerinden şifresiz Sentinel bağlantılarına olanak tanır.

    Örneğiniz 6,0'dan önceki bir Redis sürümü çalıştırıyorsa istemcinizi yükseltin ve kodu Sentinel kimlik doğrulama parolasını içerecek şekilde değiştirip yeniden deneyin. Daha fazla bilgi için bu konudaki Şifre tabanlı bağlantı bölümüne bakın.

  • S: Neden Unknown sentinel subcommand 'MASTERS' hatası alıyorum?

    C: Bu hata, örneğinizin küçük sürümünün SENTINEL MASTERS komutunu desteklememesinden kaynaklanır. Küçük sürümü güncelleyin ve yeniden deneyin.

  • S: Redis Open-Source Edition örnekleri Sentinel uyumlu modu destekler mi?

    C: Evet.