Tous les produits
Search
Centre de documentation

DataWorks:Redis

Dernière mise à jour :Aug 10, 2026

Data Integration de DataWorks vous permet d'utiliser Redis Writer pour écrire des données dans Redis. Cette rubrique explique comment procéder à des écritures par lot dans une source de données Redis avec DataWorks.

Limites

  • Exécutez les tâches d'importation de données sur des groupes de ressources serverless (recommandés) ou des groupes de ressources dédiés pour Data Integration.

  • Si la valeur est de type List, la réexécution d'une tâche de synchronisation avec Redis Writer n'est pas idempotente. Dans ce cas, supprimez manuellement les données correspondantes de Redis avant de relancer la tâche.

    Important

    Redis ne prend pas encore en charge les filtres Bloom. Pour gérer les doublons, contournez cette limitation en ajoutant un nœud Shell, Python ou PyODPS avant ou après le nœud de synchronisation dans votre flux de travail afin de dédupliquer les données.

Types de données pris en charge

Redis prend en charge de nombreux types de données : String, List, Set, ZSet (ensemble trié) et Hash. Pour plus d'informations, consultez le site redis.io.

Développement de tâches de synchronisation de données

Consultez les guides suivants pour connaître le point d'entrée et la procédure de configuration d'une tâche de synchronisation.

Annexe : Exemples de code et paramètres

Configuration d'une tâche de synchronisation par lot à l'aide de l'éditeur de code

Pour configurer une tâche de synchronisation par lot via l'éditeur de code, paramétrez le script selon le format unifié requis. Pour plus d'informations, consultez la rubrique Configuration en mode script. Les sections suivantes détaillent les paramètres à configurer pour les sources de données lors de la création d'une tâche de synchronisation par lot avec l'éditeur de code.

Exemple de code Writer

L'exemple ci-dessous illustre une tâche de synchronisation qui lit des données depuis une base de données MySQL et les écrit dans Redis. Il présente le code pour MySQL Reader et Redis Writer.

{
    "type":"job",
    "version":"2.0",  // The version number.
    "steps":[
        { // The following is a code sample for the Reader. For more information about Reader parameters, see the documentation for the corresponding Reader plugin.
            "stepType":"mysql",   
            "parameter": {
                "envType": 0,
                "datasource": "xc_mysql_demo2",
                "column": [
                    "id",
                    "value",
                    "table"
                ],
                "connection": [
                    {
                        "datasource": "xc_mysql_demo2",
                        "table": []
                    }
                ],
                "where": "",
                "splitPk": "",
                "encoding": "UTF-8"
            },,
            "name":"Reader",
            "category":"reader"
        },
        {// The following is a code sample for the Writer.
            "stepType":"redis",                    // The plugin name for Redis Writer. Set this parameter to redis.
            "parameter":{                          // The following section describes the main parameters of Redis Writer.
                "expireTime":{                     // The cache expiration time for Redis values. You can set this parameter to the seconds type or the unixtime type."seconds":"1000"
                            }, 
                "keyFieldDelimiter":"u0001",       // The delimiter for Redis keys.
                "dateFormat":"yyyy-MM-dd HH:mm:ss",// The date format used when data is written to Redis.
                "datasource":"xc_mysql_demo2",     // The data source name. This must be the same as the name of the data source you added.
                "envType": 0,                      // The environment type. Development environment: 1. Production environment: 0.
                "writeMode":{                      // The write mode.
                    "type":"string"                // The value type.
                    "mode":"set",                  // The write mode for a specific value type.
                    "valueFieldDelimiter":"u0001", // The delimiter between values.
                             },
                "keyIndexes":[0,1],                // Used for mapping from the source to Redis. Specifies the source columns to be used as the key (the first column starts from 0). For example, if the first and second columns of the source are combined as the Redis key, set this parameter to [0,1].
                "batchSize":"1000"                 // The number of records in each batch.
        "column": [                        // For Redis type string with set operation: if this column is not configured, the value format is a delimiter-separated string (CSV format. Assuming ID=1, name="John", age=18, sex=male, the Redis value example: "18::male"). If column is configured in the following format, the Redis value will be written in JSON format. Assuming ID=1, name="John", age=18, sex=male, the Redis value example: {"id":1,"name":"John","age":18,"sex":"male"}
                {
                "name": "id",
                "index": "0"

                },
                {
                "name": "name",
                "index": "1"
                },
                {
                "name": "age",
                "index": "2"
                },
                {
                "name": "sex",
                "index": "3"
                }
            ]
            },
            "name":"Writer",
            "category":"writer"
        }
    ],
    "setting":{
        "errorLimit":{
            "record":"0"                           // The error count.
        },
        "speed":{
            "throttle":true,// When throttle is set to false, the mbps parameter does not take effect, which means throttling is disabled. When throttle is set to true, throttling is enabled.
            "concurrent":1, // The concurrency of the job.
            "mbps":"12"// The throttling rate. 1 mbps = 1 MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Paramètres Writer

Paramètre

Description

Obligatoire

Valeur par défaut

expireTime

Durée d'expiration du cache des valeurs Redis, en secondes. Si vous omettez ce paramètre, la valeur par défaut 0 s'applique, ce qui signifie que les données n'expirent jamais.

Configurez expireTime de l'une des deux manières suivantes :

  • seconds : durée restante avant l'expiration des données. La valeur correspond au nombre de secondes entre l'heure actuelle et l'heure d'expiration.

  • unixtime : durée écoulée depuis le 1er janvier 1970 jusqu'à l'expiration des données. La valeur correspond au nombre de secondes entre le 1er janvier 1970 et l'heure d'expiration.

Non

0 (les données n'expirent jamais)

keyFieldDelimiter

Délimiteur des clés Redis. Par exemple : key=key1\u0001id. Ce paramètre est requis si vous devez concaténer plusieurs clés. Vous pouvez l'ignorer si vous n'utilisez qu'une seule clé.

Non

\u0001

dateFormat

Format de date utilisé lors de l'écriture des données dans Redis : yyyy-MM-dd HH:mm:ss.

Non

S.O.

datasource

Nom de la source de données. Il doit correspondre exactement au nom de la source de données ajoutée.

Oui

S.O.

selectDatabase

Base de données Redis cible ("0" à "N-1", où N représente le nombre de bases de données configurées dans Redis). La sélection de base de données n'est pas prise en charge pour les clusters Redis.

Non

Base de données 0 par défaut

writeMode

Redis Writer prend en charge cinq types de valeur pour l'écriture dans Redis :

  • String

  • List

  • Set

  • ZSet (ensemble trié)

  • Hash

La configuration de writeMode varie légèrement selon le type de valeur. Pour plus d'informations, consultez la description du paramètre writeMode ci-dessous.

Remarque

Lors de la configuration de Redis Writer, définissez writeMode sur l'un des cinq types de données pris en charge ; un seul type est autorisé. À défaut, writeMode utilise la valeur par défaut string.

Non

string

keyIndexes

Spécifie les index des colonnes source à utiliser comme clé. Les index commencent à 0 (la première colonne a l'index 0, la deuxième l'index 1, etc.).

  • Si une seule colonne source sert de clé Redis, indiquez son index. Par exemple, si la première colonne est la clé, définissez ce paramètre sur 0.

  • Si plusieurs colonnes source consécutives forment la clé Redis, indiquez un tableau contenant leurs index. Par exemple, si les deuxième à quatrième colonnes forment la clé, définissez ce paramètre sur [1,3].

Remarque

Après configuration de keyIndexes, Redis Writer utilise les colonnes restantes comme valeur. Pour synchroniser uniquement certaines colonnes spécifiques en tant que clé et d'autres en tant que valeur, filtrez les colonnes via le paramètre column du plug-in Reader.

Oui

S.O.

batchSize

Nombre d'enregistrements par lot. Ce paramètre réduit considérablement le nombre d'interactions réseau entre le système de synchronisation et Redis, améliorant ainsi le débit global. Une valeur trop élevée peut provoquer une erreur de mémoire insuffisante (OOM).

Non

1 000

timeout

Délai d'attente pour l'écriture des données dans Redis, en millisecondes.

Non

30 000

redisMode

Mode d'exécution de Redis. Valeurs valides :

  • Mode cluster : Définissez redisMode sur ClusterMode.

    En mode cluster, les autres sources de données communiquent directement avec le cluster Redis lors de l'écriture. Ce mode s'applique généralement aux adresses de cluster Redis gérées par l'utilisateur et aux adresses de connexion directe Alibaba Cloud Redis. Le mode cluster prend en charge les écritures par lot.

  • Mode non cluster : Laissez redisMode vide (ne configurez aucune valeur).

    Ce mode s'applique généralement aux adresses proxy de cluster Alibaba Cloud Redis, aux adresses de répartition lecture/écriture et aux adresses de l'édition Standard. Le mode non cluster ne prend pas encore en charge les écritures par lot.

Remarque

Pris en charge sur les groupes de ressources serverless (recommandés) et les groupes de ressources dédiés pour Data Integration.

Non

S.O.

column

Configuration des colonnes pour l'écriture dans Redis. Pour le type String Redis avec l'opération set :

  • Si cette colonne n'est pas configurée, la valeur est une chaîne séparée par des délimiteurs (format CSV. Par exemple, si ID=1, name="John", age=18 et sex=male, la valeur Redis sera : "18::male").

  • Si la colonne est configurée comme suit : "column": [{"index":"0", "name":"id"}, {"index":"1", "name":"name"}], les données sont stockées au format JSON dans Redis, sous la forme {"id":"valeur de la colonne source correspondante","name":"valeur de la colonne source correspondante"} . Par exemple, si ID=1 et name="John", la valeur Redis sera {"id":"1","name":"John"}.

Non

S.O.

Description du paramètre writeMode

Lors de la configuration de Redis Writer, définissez writeMode sur l'un des cinq types de données pris en charge ; un seul type est autorisé. À défaut, writeMode utilise la valeur par défaut string.

Type de valeur

Paramètre type (obligatoire)

Paramètre mode (obligatoire)

Paramètre valueFieldDelimiter (facultatif)

Exemple de configuration writeMode

String

Définissez type sur string.

mode définit le mode d'écriture. Pour les chaînes :

  • Définissez mode sur set.

  • Les données existantes sont écrasées si elles sont déjà présentes.

valueFieldDelimiter est le délimiteur entre les valeurs. La valeur par défaut est \u0001.

  • Utilisez ce paramètre principalement lorsqu'il y a plus de deux colonnes dans chaque ligne de données source. Par exemple, pour trois colonnes, les valeurs sont séparées comme suit : value1\u0001value2\u0001value3.

  • Si les données source ne contiennent que deux colonnes (clé et valeur), ce paramètre est inutile.

"writeMode":{
        "type": "string",
        "mode": "set",
        "valueFieldDelimiter": "\u0001"
        }

List

Définissez type sur list.

mode définit le mode d'écriture. Pour les listes, les options suivantes sont disponibles :

  • lpush : stocke les données à gauche de la liste.

  • rpush : stocke les données à droite de la liste.

"writeMode":{
    "type": "list",
    "mode": "lpush|rpush",
    "valueFieldDelimiter": "\u0001"
}

Set

Définissez type sur set.

mode définit le mode d'écriture. Pour les ensembles :

  • Définissez mode sur sadd pour stocker les données dans l'ensemble.

  • Les données existantes sont écrasées si elles sont déjà présentes.

"writeMode":{
        "type": "set",
        "mode": "sadd",
        "valueFieldDelimiter": "\u0001"
        }

ZSet (ensemble trié)

Définissez type sur zset.

mode définit le mode d'écriture. Pour les ZSet (ensembles triés) :

  • Définissez mode sur zadd pour stocker les données dans l'ensemble trié.

  • Les données existantes sont écrasées si elles sont déjà présentes.

Ce paramètre ne nécessite pas de configuration.

"writeMode":{
        "type": "zset",
        "mode": "zadd"
        }
Remarque

Pour le type zset, chaque ligne de données source doit respecter le format correspondant. Chaque ligne ne peut contenir qu'une seule paire score-valeur en plus de la clé, et le score doit précéder la valeur afin que Redis Writer identifie correctement la colonne correspondant au score et celle correspondant à la valeur.

Hash

Définissez type sur hash.

mode définit le mode d'écriture. Pour les hachages :

  • Définissez mode sur hset pour stocker les données dans le hachage.

  • Les données existantes sont écrasées si elles sont déjà présentes.

Ce paramètre ne nécessite pas de configuration.

"writeMode":{
        "type": "hash",
        "mode": "hset"
        }
Remarque

Pour le type hash, chaque ligne de données source doit respecter le format correspondant. Chaque ligne ne peut contenir qu'une seule paire attribut-valeur en plus de la clé, et l'attribut doit précéder la valeur afin que Redis Writer identifie correctement la colonne correspondant à l'attribut et celle correspondant à la valeur.