全部产品
Search
文档中心

DataWorks:Sumber data Redis

更新时间:Feb 03, 2026

Gunakan Redis Writer di Data Integration DataWorks untuk menulis data ke sumber data Redis. Topik ini menjelaskan cara mengonfigurasi Redis Writer guna melakukan sinkronisasi data offline.

Batasan

Tipe data yang didukung

Redis mendukung berbagai tipe nilai, termasuk String, List, Set, Sorted Set, dan Hash. Untuk informasi lebih lanjut tentang Redis, lihat redis.io.

Konfigurasi job sinkronisasi

Untuk informasi mengenai titik masuk dan prosedur konfigurasi task sinkronisasi, lihat panduan konfigurasi berikut.

Apendiks: Contoh skrip dan parameter

Konfigurasi task sinkronisasi batch menggunakan editor kode

Jika Anda ingin mengonfigurasi task sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip sesuai dengan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasi task di editor kode. Informasi berikut menjelaskan parameter yang harus dikonfigurasi untuk sumber data saat mengonfigurasi task sinkronisasi batch menggunakan editor kode.

Contoh skrip Writer

Contoh skrip berikut menunjukkan job sinkronisasi yang menggunakan MySQL Reader untuk membaca data dari sumber MySQL dan Redis Writer untuk menulis data ke tujuan Redis.

{
    "type":"job",
    "version":"2.0",  // Nomor versi.
    "steps":[
        { // Kode berikut ini untuk reader. Untuk detail parameter, lihat dokumentasi plugin Reader yang sesuai.
            "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"
        },
        {// Kode berikut ini untuk writer.
            "stepType":"redis",                    // Nama plugin. Atur ke redis untuk Redis Writer.
            "parameter":{                          // Parameter utama untuk Redis Writer.
                "expireTime":{                     // Waktu kedaluwarsa untuk pasangan kunci-nilai. Anda dapat mengonfigurasinya dalam satuan detik atau sebagai timestamp Unix.
                    "seconds":"1000"
                }, 
                "keyFieldDelimiter":"u0001",       // Delimiter untuk menggabungkan beberapa kolom menjadi kunci Redis.
                "dateFormat":"yyyy-MM-dd HH:mm:ss",// Format untuk nilai bertipe Date saat ditulis ke Redis.
                "datasource":"xc_mysql_demo2",     // Nama sumber data. Harus sesuai dengan nama sumber data yang telah Anda tambahkan.
                "envType": 0,                      // Jenis lingkungan. 0 untuk lingkungan produksi, 1 untuk lingkungan pengembangan.
                "writeMode":{                      // Mode penulisan.
                    "type":"string",               // Tipe nilai.
                    "mode":"set",                  // Mode penulisan untuk tipe nilai yang ditentukan.
                    "valueFieldDelimiter":"u0001"  // Delimiter untuk menggabungkan beberapa kolom menjadi nilai.
                             },
                "keyIndexes":[0,1],                // Memetakan kolom sumber ke kunci Redis. Menentukan indeks kolom sumber yang akan digunakan sebagai kunci. Indeks kolom dimulai dari 0. Jika Anda menggunakan kolom pertama dan kedua sebagai kunci komposit, atur nilai ini menjadi [0,1].
                "batchSize":"1000",                // Jumlah catatan yang ditulis dalam satu batch.
        "column": [                        // Parameter ini berlaku untuk operasi set pada tipe data String. Jika Anda tidak mengonfigurasi parameter ini, nilainya adalah string nilai yang digabungkan dengan delimiter (format CSV). Misalnya, jika nilai age adalah 18 dan nilai sex adalah male, nilai Redis-nya adalah "18::male". Jika Anda mengonfigurasi parameter ini seperti yang ditunjukkan, nilai ditulis dalam format JSON, termasuk nama kolom asli dan nilainya. Misalnya, jika id adalah 1, name adalah "John", age adalah 18, dan sex adalah "male", nilai Redis-nya adalah {"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"                           // Jumlah maksimum catatan error yang diizinkan.
        },
        "speed":{
            "throttle":true, // Mengaktifkan atau menonaktifkan pembatasan kecepatan. Jika diatur ke false, parameter mbps diabaikan.
            "concurrent":1,  // Konkurensi job.
            "mbps":"12"      // Laju transfer maksimum dalam MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter Writer

Parameter

Deskripsi

Wajib

Bawaan

expireTime

Waktu kedaluwarsa untuk kunci di Redis. Jika Anda tidak menentukan parameter ini, nilai bawaan 0 digunakan, yang berarti kunci tidak pernah kedaluwarsa.

Anda dapat mengonfigurasi expireTime dengan salah satu cara berikut:

  • seconds: Menentukan jumlah detik sejak waktu saat ini hingga kunci kedaluwarsa.

  • unixtime: Menentukan waktu kedaluwarsa sebagai timestamp Unix, yaitu jumlah detik yang telah berlalu sejak 1970-01-01 00:00:00 UTC.

Tidak

0 (Kunci tidak pernah kedaluwarsa.)

keyFieldDelimiter

Delimiter yang digunakan untuk menggabungkan beberapa kolom menjadi kunci Redis, misalnya key=key1\u0001id. Parameter ini wajib ketika Anda menggabungkan beberapa kolom menjadi satu kunci. Anda dapat mengabaikan parameter ini jika kuncinya hanya terdiri dari satu kolom.

Tidak

\u0001

dateFormat

Format untuk nilai bertipe Date saat ditulis ke Redis, seperti yyyy-MM-dd HH:mm:ss.

Tidak

Tidak ada

datasource

Nama sumber data. Nama ini harus sesuai dengan yang Anda konfigurasi di Konsol DataWorks.

Ya

Tidak ada

selectDatabase

Indeks database tujuan. Nilai yang valid berkisar dari "0" hingga "N-1", di mana N adalah jumlah `databases` yang dikonfigurasi di Redis. Parameter ini tidak tersedia untuk kluster Redis.

Tidak

Bawaan ke database 0.

writeMode

Tipe data nilai yang akan ditulis ke Redis. Redis Writer mendukung lima tipe berikut:

  • String (string)

  • List (list)

  • Set (set)

  • Sorted Set (zset)

  • Hash (hash)

Konfigurasi writeMode bervariasi tergantung tipe datanya. Untuk detailnya, lihat bagian parameter writeMode di bawah ini.

Catatan

Anda harus mengonfigurasi writeMode dengan salah satu dari lima tipe data yang didukung. Hanya satu tipe yang diizinkan. Jika Anda tidak mengonfigurasi parameter ini, nilai bawaan string digunakan.

Tidak

string

keyIndexes

Indeks kolom sumber berbasis nol yang digunakan untuk kunci Redis.

  • Untuk menggunakan satu kolom dari sumber sebagai kunci Redis, tentukan indeksnya. Misalnya, untuk menggunakan kolom pertama sebagai kunci, atur nilainya menjadi 0.

  • Untuk menggunakan beberapa kolom sumber sebagai kunci Redis komposit, tentukan indeksnya dalam bentuk array. Misalnya, untuk menggunakan kolom kedua dan ketiga sebagai kunci komposit, atur nilainya menjadi [1,2].

Catatan

Redis Writer menggunakan semua kolom yang tidak ditentukan dalam keyIndexes sebagai nilai. Untuk menyinkronkan hanya kolom tertentu, konfigurasikan parameter column di plugin Reader untuk memfilternya.

Ya

Tidak ada

batchSize

Jumlah catatan yang ditulis dalam satu batch. Nilai yang lebih besar dapat mengurangi interaksi jaringan dengan Redis dan meningkatkan throughput. Namun, mengatur nilai ini terlalu tinggi dapat menyebabkan error kehabisan memori (OOM) pada proses job sinkronisasi.

Tidak

1000

timeout

Timeout operasi penulisan dalam milidetik.

Tidak

30000

redisMode

Mode penyebaran Redis. Nilai yang valid:

  • Cluster mode: Atur ClusterMode ke ClusterMode.

    Dalam mode ini, Redis Writer terhubung langsung ke kluster Redis. Mode ini biasanya digunakan untuk kluster Redis yang dikelola sendiri dan instans Redis Alibaba Cloud dengan alamat koneksi langsung. Mode kluster mendukung penulisan batch.

  • redisMode: Biarkan redisMode kosong atau jangan konfigurasi.

    Mode ini biasanya digunakan untuk instans Redis Alibaba Cloud dengan alamat proxy, alamat pemisahan baca/tulis, atau alamat edisi standar. Mode non-kluster tidak mendukung penulisan batch.

Catatan

Tidak

Tidak ada

column

Konfigurasi kolom yang akan ditulis ke Redis. Parameter ini berlaku ketika `writeMode.type` adalah `string` dan `writeMode.mode` adalah `set`.

  • Jika Anda tidak mengonfigurasi parameter ini, nilai ditulis sebagai string nilai yang digabungkan dengan delimiter (format CSV). Misalnya, jika suatu catatan memiliki nilai `18` dan `male`, nilai di Redis mungkin `"18::male"`.

  • Jika Anda mengonfigurasi parameter ini, misalnya, "column": [{"index":"0", "name":"id"}, {"index":"1", "name":"name"}], nilai tersebut ditulis dalam format JSON, seperti {"id":"<value_from_source>","name":"<value_from_source>"}</value_from_source></value_from_source>. Misalnya, jika `id` adalah `1` dan `name` adalah `John`, nilai di Redis adalah {"id":"1","name":"John"}.

Tidak

Tidak ada

Parameter writeMode

Tipe nilai

Parameter type

Parameter mode

Parameter valueFieldDelimiter

Contoh konfigurasi

String

Atur type ke string.

Untuk tipe nilai String, mode menentukan mode penulisan:

  • Atur mode ke set.

  • Jika kunci sudah ada, nilainya akan ditimpa.

valueFieldDelimiter adalah delimiter untuk menggabungkan nilai. Nilai bawaannya adalah \u0001.

  • Parameter ini digunakan ketika satu baris data sumber memiliki lebih dari satu kolom nilai. Misalnya, jika terdapat tiga kolom nilai, nilai-nilai tersebut digabungkan dengan delimiter, seperti value1\u0001value2\u0001value3.

  • Jika data sumber hanya memiliki satu kolom kunci dan satu kolom nilai, Anda tidak perlu mengonfigurasi parameter ini.

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

List

Atur type ke list.

Untuk tipe nilai List, mode dapat berupa salah satu berikut:

  • lpush: Dorong elemen ke kepala (kiri) daftar.

  • rpush: Dorong elemen ke ekor (kanan) daftar.

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

Set

Atur type ke set.

Untuk tipe nilai Set, mode menentukan mode penulisan:

  • Atur mode ke sadd untuk menambahkan anggota ke set.

  • Jika kunci dengan nama yang sama sudah ada tetapi bertipe berbeda, nilainya akan ditimpa.

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

Sorted Set

Atur type ke zset.

Untuk tipe nilai Sorted Set, mode menentukan mode penulisan:

  • Atur mode ke zadd untuk menambahkan anggota ke sorted set.

  • Jika kunci dengan nama yang sama sudah ada tetapi bukan sorted set, nilainya akan ditimpa.

Tidak diperlukan.

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

Ketika tipe nilai adalah `zset`, setiap catatan sumber harus menyediakan tepat satu pasangan score/member selain kolom kunci. Score harus mendahului member. Format ini memastikan bahwa Redis Writer dapat mengurai data dengan benar.

Hash

Atur type ke hash.

Untuk tipe nilai Hash, mode menentukan mode penulisan:

  • Atur mode ke hset untuk menambahkan data ke hash.

  • Jika kunci dengan nama yang sama sudah ada tetapi bukan hash, nilainya akan ditimpa.

Tidak diperlukan.

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

Ketika tipe nilai adalah `hash`, setiap catatan sumber harus menyediakan tepat satu pasangan field/nilai selain kolom kunci. Field harus mendahului nilai. Format ini memastikan bahwa Redis Writer dapat mengurai data dengan benar.