Tous les produits
Search
Centre de documentation

Tair (Redis® OSS-Compatible):Se connecter en mode compatible Sentinel

Dernière mise à jour :Sep 24, 2026

Tair (Redis OSS-compatible) utilise un composant propriétaire de haute disponibilité (HA) et ne dépend pas de Sentinel. Toutefois, pour améliorer la compatibilité et limiter les modifications de code, Tair (Redis OSS-compatible) 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ître et réplica, 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é, vous pouvez utiliser les commandes Sentinel suivantes. Le nom du maître doit être défini sur redis_master.

Commande

Description

SENTINEL sentinels

Renvoie des informations sur les instances Sentinel qui surveillent un maître spécifié. Utilisation :

SENTINEL sentinels redis_master

SENTINEL get-master-addr-by-name

Renvoie l'adresse IP et le port d'un maître spécifié. Utilisation :

SENTINEL get-master-addr-by-name redis_master

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

Prérequis

Exemples de connexion

Une fois le mode compatible avec Sentinel activé, vous pouvez vous connecter à 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. Dans le cas contraire, fournissez des identifiants d'authentification.

Connexion sans mot de passe

Remarque

Pour plus d'informations sur l'activation de 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 montre comment se connecter à une instance en utilisant le 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 : Nom du maître. Définissez ce paramètre sur redis_master.

  • sentinel : Point de terminaison VPC et 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 : Point de terminaison VPC et numéro de port de l'instance.

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

Connexion avec mot de passe

Le code suivant montre comment se connecter à une instance en utilisant le 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. Vous devez également configurer 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 dépôt 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 : Nom du maître. Définissez ce paramètre sur redis_master.

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

  • dbPassword et sentinelPassword : 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 : Point de terminaison VPC et numéro de port de l'instance.

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

  • SENTINEL_REDIS_PWD : Mot de passe du compte de l'instance.

FAQ

  • Q : Que faire si je reçois l'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 les connexions Sentinel sans mot de passe via un point de terminaison VPC sans activer la fonctionnalité globale d'accès sans mot de passe VPC.

    Si votre instance exécute une version de Redis antérieure à la 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 l'erreur Unknown sentinel subcommand 'MASTERS' s'affiche-t-elle ?

    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.