Tous les produits
Search
Centre de documentation

Tair (Redis® OSS-Compatible):Connexion en mode compatible avec Sentinel

Dernière mise à jour :Aug 08, 2026

Tair (compatible avec Redis OSS) utilise un composant propriétaire de haute disponibilité et ne repose pas sur Sentinel. Toutefois, pour améliorer la compatibilité et limiter les modifications de code, Tair (compatible avec Redis OSS) propose un mode compatible avec Sentinel. Une fois cette fonctionnalité activée, connectez-vous aux instances Tair et Redis Open-Source Edition comme vous le feriez avec un déploiement Redis Sentinel auto-géré.

Redis Sentinel

Redis Sentinel offre des fonctionnalités pour Redis open source, telles que la surveillance des nœuds maîtres et réplicas, les notifications d'échec et le basculement automatique. De nombreuses applications critiques utilisant une base de données Redis auto-gérée s'appuient sur Sentinel. Pour simplifier la migration de ces bases de données vers le cloud, Alibaba Cloud a développé le mode compatible avec Sentinel. Une fois ce mode activé, utilisez les commandes Sentinel suivantes. Définissez le nom du maître sur redis_master.

Pour plus d'informations sur la prise en charge des commandes Sentinel selon les versions, consultez la section Prise en charge des commandes de Redis Open-Source Edition.

Prérequis

Exemples de connexion

Une fois le mode compatible avec Sentinel activé, connectez-vous à l'instance avec ou sans mot de passe. Aucun mot de passe n'est requis si l'accès sans mot de passe est activé pour l'instance au sein d'un VPC. Sinon, fournissez des informations d'identification.

Connexion sans mot de passe

Remarque

Pour savoir comment activer l'accès sans mot de passe dans un VPC, consultez la rubrique Activer l'accès sans mot de passe dans un VPC.

Le code suivant illustre la connexion à une instance en mode compatible avec Sentinel sans mot de passe.

Spring Data Redis

Cet exemple utilise 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;
    }

Paramètres :

  • master : le nom du maître. Définissez ce paramètre sur redis_master.

  • sentinel : le point de terminaison VPC et le numéro de port de l'instance, séparés par une virgule (,), par exemple "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com", 6379.

redis-py

Cet exemple utilise Python 3.9 et 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'))

Paramètres :

  • SENTINEL_HOST et SENTINEL_PORT : le point de terminaison VPC et le numéro de port de l'instance.

  • SENTINEL_MASTER_NAME : le nom du maître. Définissez ce paramètre sur redis_master.

Connexion avec mot de passe

Le code suivant illustre la connexion à une instance en mode compatible avec Sentinel avec un mot de passe.

Java

Cet exemple utilise les versions minimales requises du client. Vos clients doivent respecter les exigences de version suivantes :

  • Jedis 3.10.0 ou version ultérieure.

  • Lettuce 6.3.0.RELEASE ou version ultérieure.

  • Spring Data Redis 2.5.1 ou version ultérieure. Configurez également le paramètre spring.redis.sentinel.password.

Remarque

Nous vous recommandons vivement de mettre à niveau votre client vers la dernière version stable. Pour trouver la dernière version, effectuez une recherche dans le référentiel MVN.

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

Paramètres :

  • masterName : le nom du maître. Définissez ce paramètre sur redis_master.

  • sentinels.add/sentinelNodes : le point de terminaison VPC et le numéro de port de l'instance, au format r-bp10noxlhcoim2****.redis.rds.aliyuncs.com:6379.

  • dbPassword et sentinelPassword : le mot de passe du compte de l'instance. Si vous avez oublié le mot de passe, réinitialisez-le. Pour plus d'informations, consultez la rubrique Modifier ou réinitialiser le mot de passe.

    Remarque
    • Pour un compte par défaut, où le nom d'utilisateur est identique à l'ID de l'instance, saisissez uniquement le mot de passe.

    • Pour un compte nouvellement créé, utilisez le format <user>:<password>. Ce format est également pris en charge pour le compte par défaut. Par exemple, si le nom d'utilisateur est testaccount et le mot de passe est Rp829dlwa, saisissez testaccount:Rp829dlwa.

redis-py

Cet exemple utilise Python 3.9 et 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"  # 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'))

Paramètres :

  • SENTINEL_HOST et SENTINEL_PORT : le point de terminaison VPC et le numéro de port de l'instance.

  • SENTINEL_MASTER_NAME : le nom du maître. Définissez ce paramètre sur redis_master.

  • SENTINEL_REDIS_PWD : le mot de passe du compte de l'instance.

FAQ

  • Q : Que faire si je reçois une erreur NOAUTH Authentication required après être passé d'un déploiement Redis Sentinel auto-géré au mode compatible avec Sentinel ?

    R : Activez le paramètre #no_loose_sentinel-password-free-access en le définissant sur yes. Cela permet des connexions Sentinel sans mot de passe via un point de terminaison VPC sans activer la fonctionnalité globale d'accès sans mot de passe du VPC.

    Si votre instance exécute une version de Redis antérieure à la version 6.0, mettez à niveau votre client et modifiez le code pour inclure le mot de passe d'authentification Sentinel, puis réessayez. Pour plus d'informations, consultez la section Connexion avec mot de passe de cette rubrique.

  • Q : Pourquoi recevoir une erreur Unknown sentinel subcommand 'MASTERS' ?

    R : Cette erreur survient car la version mineure de votre instance ne prend pas en charge la commande SENTINEL MASTERS. Mettez à jour la version mineure et réessayez.

  • Q : Les instances Redis Open-Source Edition prennent-elles en charge le mode compatible avec Sentinel ?

    R : Oui.