全部产品
Search
文档中心

DataWorks:Sumber data Redis

更新时间:Oct 28, 2025

DataWorks menyediakan Redis Writer untuk menulis data ke sumber data Redis. Topik ini menjelaskan kemampuan sinkronisasi data ke sumber data Redis.

Batasan

  • Kelompok sumber daya tanpa server dan kelompok sumber daya eksklusif untuk Data Integration didukung. Disarankan menggunakan kelompok sumber daya tanpa server.

  • Jika Anda menjalankan ulang tugas sinkronisasi yang menggunakan Redis Writer untuk menulis nilai LIST ke Redis, hasil sinkronisasi data tidak bersifat idempoten. Dalam hal ini, Anda harus menghapus data yang ditulis oleh Redis Writer dalam eksekusi sebelumnya dari Redis sebelum menjalankan ulang tugas sinkronisasi.

    Penting

    Redis saat ini tidak mendukung konfigurasi filter Bloom. Untuk menangani data duplikat, tambahkan node sebelum atau sesudah node sinkronisasi dalam alur kerja Anda (misalnya, Shell, Python, atau PyODPS) untuk melakukan deduplikasi.

Pemetaan Tipe Data

Redis mendukung nilai dengan tipe data berikut: STRING, LIST, SET, ZSET (set terurut), dan HASH. Untuk informasi lebih lanjut tentang Redis, kunjungi redis.io.

Mengembangkan Tugas Sinkronisasi Data

Untuk informasi tentang titik masuk dan prosedur konfigurasi tugas sinkronisasi, lihat panduan konfigurasi berikut.

Lampiran: Kode dan Parameter

Konfigurasikan Tugas Sinkronisasi Batch Menggunakan Editor Kode

Jika Anda ingin mengonfigurasi tugas sinkronisasi batch menggunakan editor kode, Anda harus mengonfigurasi parameter terkait dalam skrip berdasarkan persyaratan format skrip terpadu. Untuk informasi lebih lanjut, lihat Konfigurasikan tugas di editor kode. Informasi berikut menjelaskan parameter yang harus Anda konfigurasikan untuk sumber data ketika Anda mengonfigurasi tugas sinkronisasi batch menggunakan editor kode.

Kode untuk Redis Writer

Dalam kode berikut, tugas sinkronisasi batch dikonfigurasi untuk menyinkronkan data dari database MySQL ke Redis.

{
    "type":"job",
    "version":"2.0", // Nomor versi.
    "steps":[
        { // Contoh kode berikut digunakan untuk mengonfigurasi Reader. Untuk informasi lebih lanjut tentang parameter Reader, lihat topik Reader terkait.
            "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"
        },
        {// Contoh kode berikut digunakan untuk mengonfigurasi Writer:
            "stepType":"redis",                    // Nama plugin. Atur nilainya menjadi redis.
            "parameter":{                          // Konfigurasikan parameter berikut dari Redis Writer.
                "expireTime":{                     // Waktu kedaluwarsa nilai yang disimpan di Redis. Atur nilainya menjadi periode waktu dalam detik atau stempel waktu UNIX. Misalnya, Anda dapat mengatur parameter ini menjadi "seconds":"1000".
                            }, 
                "keyFieldDelimiter":"u0001",       // Pembatas yang ingin Anda gunakan untuk memisahkan kunci ketika Redis Writer menulis data ke Redis.
                "dateFormat":"yyyy-MM-dd HH:mm:ss",// Format penulisan data tipe DATE ke Redis oleh Redis Writer.
                "datasource":"xc_mysql_demo2",     // Nama sumber data. Nama tersebut harus sama dengan nama sumber data yang telah Anda tambahkan.
                "envType": 0,                      // Jenis lingkungan. Atur nilainya menjadi 1 untuk lingkungan pengembangan. Atur nilainya menjadi 0 untuk lingkungan produksi.
                "writeMode":{                      // Mode penulisan data ke Redis.
                    "type": "string",                 // Tipe data nilai yang ingin Anda tulis ke Redis.
                    "mode":"set",                  // Mode penulisan data tipe yang ditentukan oleh parameter type ke Redis.
                    "valueFieldDelimiter":"u0001", // Pembatas yang ingin Anda gunakan untuk memisahkan nilai kolom.
                             },
                "keyIndexes":[0,1],                // Indeks kolom sumber yang digunakan sebagai kunci ketika Redis Writer menulis data ke Redis. Dalam contoh ini, nilai diatur ke [0,1], yang menunjukkan bahwa kolom pertama dan kedua dari data sumber digunakan sebagai kunci.
                "batchSize":"1000"                 // Jumlah catatan data yang ditulis sekaligus.
        "column": [                        // Jika Anda mengatur parameter type menjadi string dan parameter mode menjadi set dan tidak mengonfigurasi parameter column, nilai yang akan ditulis ke Redis adalah string yang dihubungkan oleh pembatas. Misalnya, untuk file sumber CSV, jika nilai id adalah 1, nilai name adalah Bob, nilai age adalah 18, dan nilai sex adalah male, nilai yang akan ditulis ke Redis adalah "18::male". Jika Anda mengatur parameter type menjadi string dan parameter mode menjadi set dan mengonfigurasi parameter column dalam format berikut, nilai-nilai tersebut ditulis ke Redis dalam format JSON, seperti {"id":1,"name":"Bob","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 data kotor yang diizinkan.
        },
        "speed":{
            "throttle":true,// Menentukan apakah throttling diaktifkan. Nilai false menunjukkan bahwa throttling dinonaktifkan, dan nilai true menunjukkan bahwa throttling diaktifkan. Parameter mbps hanya berlaku ketika parameter throttle diatur ke true.
            "concurrent":1, // Jumlah maksimum thread paralel.
            "mbps":"12"// Laju transmisi maksimum. Unit: MB/s.
        }
    },
    "order":{
        "hops":[
            {
                "from":"Reader",
                "to":"Writer"
            }
        ]
    }
}

Parameter dalam Kode untuk Redis Writer

Parameter

Deskripsi

Diperlukan

Nilai default

expireTime

Waktu kedaluwarsa nilai yang disimpan di Redis. Satuan: detik. Jika Anda tidak mengonfigurasi parameter ini, nilai default 0 digunakan, yang menunjukkan bahwa nilai tersebut valid secara permanen.

Anda dapat menentukan nilai parameter expireTime dalam salah satu mode berikut:

  • seconds: periode waktu relatif dalam detik mulai dari titik waktu saat ini. Ini menentukan periode selama nilai tersebut valid.

  • unixtime: jumlah detik yang telah berlalu sejak pukul 00:00:00 pada tanggal 1 Januari 1970. Ini menentukan titik waktu ketika nilai tersebut kedaluwarsa.

Tidak

0

keyFieldDelimiter

Pembatas yang ingin Anda gunakan untuk memisahkan kunci ketika Redis Writer menulis data ke Redis. Contoh: key=key1\u0001id. Jika beberapa kunci perlu digabungkan, parameter ini diperlukan. Jika data hanya berisi satu kunci, parameter ini tidak diperlukan.

Tidak

\u0001

dateFormat

Format penulisan data tipe DATE ke Redis oleh Redis Writer. Atur nilainya menjadi yyyy-MM-dd HH:mm:ss.

Tidak

Tidak ada nilai default

datasource

Nama sumber data. Nama tersebut harus sama dengan nama sumber data yang telah Anda tambahkan.

Ya

Tidak ada nilai default

selectDatabase

Database tempat Anda ingin menulis data. Database pertama dalam kluster Redis adalah database 0. Data Integration tidak mengizinkan Anda memilih database tempat Anda ingin menulis data dalam kluster Redis.

Tidak

database 0

writeMode

Mode penulisan data ke Redis oleh Redis Writer. Redis Writer dapat menulis nilai dengan tipe berikut:

  • STRING

  • LIST

  • SET

  • ZSET (set terurut)

  • HASH

Nilai parameter writeMode bervariasi berdasarkan tipe data nilai yang ingin Anda tulis ke Redis. Untuk informasi lebih lanjut, lihat Deskripsi parameter writeMode.

Catatan

Ketika Anda mengonfigurasi Redis Writer, Anda hanya dapat menentukan satu tipe data untuk parameter writeMode. Jika Anda tidak mengonfigurasi parameter ini, nilai default string digunakan.

Tidak

string

keyIndexes

Indeks kolom sumber yang digunakan sebagai kunci. Indeks dimulai dari 0. Ini menunjukkan bahwa indeks kolom pertama adalah 0, indeks kolom kedua adalah 1, dan seterusnya.

  • Jika Anda ingin menentukan kolom tertentu dari sumber sebagai kunci, atur parameter ini ke indeks kolom tersebut. Misalnya, jika Anda ingin menentukan kolom pertama sebagai kunci, atur parameter ini ke 0.

  • Jika Anda ingin menentukan rentang kolom berdekatan dari sumber sebagai kunci, atur parameter ini ke interval tertutup yang menentukan indeks kolom-kolom tersebut. Misalnya, jika Anda ingin menentukan kolom kedua, ketiga, dan keempat sebagai kunci, atur parameter ini ke [1,3].

Catatan

Setelah Anda mengonfigurasi parameter keyIndexes, Redis Writer menggunakan kolom yang tersisa sebagai nilai. Jika Anda ingin menyinkronkan hanya beberapa kolom di sumber, tentukan nama kolom ketika Anda mengonfigurasi Reader terkait.

Ya

Tidak ada nilai default

batchSize

Jumlah catatan data yang ditulis sekaligus. Atur parameter ini ke nilai yang sesuai berdasarkan kebutuhan bisnis Anda. Ini sangat mengurangi interaksi antara Data Integration dan Redis serta meningkatkan throughput. Jika Anda mengatur parameter ini ke nilai yang terlalu besar, kesalahan out of memory (OOM) mungkin terjadi selama sinkronisasi data.

Tidak didukung.

1.000

timeout

Periode timeout koneksi ke Redis ketika data ditulis ke Redis. Satuan: milidetik.

Tidak didukung.

30.000

redisMode

Mode penyebaran Redis. Nilai valid:

  • Mode kluster: Jika Anda mengatur parameter redisMode ke Cluster mode, mode kluster berlaku.

    Dalam mode ini, ketika Anda menyinkronkan data dari sumber data lain ke kluster Redis, Data Integration langsung terhubung dan berkomunikasi dengan kluster Redis. Jika Anda ingin menulis data ke kluster Redis yang dikelola sendiri atau instans kluster ApsaraDB for Redis yang menggunakan mode koneksi langsung, Anda harus mengatur parameter redisMode ke nilai ini. Mode ini tidak mendukung penulisan data batch.

  • Mode non-kluster: Jika Anda tidak mengisi parameter redisMode, mode non-kluster berlaku.

    Dalam kebanyakan kasus, jika Anda ingin menulis data ke instans kluster ApsaraDB for Redis yang menggunakan mode koneksi proxy, instans pemisahan baca/tulis ApsaraDB for Redis, atau instans master-replika standar ApsaraDB for Redis, Anda harus menggunakan mode non-kluster. Mode ini mendukung penulisan data batch.

Catatan

Kelompok sumber daya tanpa server dan kelompok sumber daya eksklusif untuk Data Integration didukung. Kami merekomendasikan Anda menggunakan kelompok sumber daya tanpa server.

Tidak

Tidak ada nilai default

column

Nama kolom tempat Anda ingin menulis data. Jika Anda mengatur parameter type menjadi string dan parameter mode menjadi set, perhatikan poin-poin berikut:

  • Jika parameter column tidak dikonfigurasi, nilai yang disimpan di Redis adalah string yang dihubungkan oleh pembatas. Misalnya, dalam file sumber CSV, nilai id adalah 1, nilai name adalah Bob, nilai age adalah 18, dan nilai sex adalah male. Dalam hal ini, nilai yang akan ditulis ke Redis adalah "18::male".

  • Jika parameter column dikonfigurasi dalam format "column": [{"index":"0", "name":"id"}, {"index":"1", "name":"name"}], nilai-nilai tersebut disimpan di Redis dalam format JSON {"id":"Nilai kolom sumber","name":"Nilai kolom sumber"}. Misalnya, nilai id adalah 1, dan nilai name adalah Bob. Dalam hal ini, nilai yang disimpan di Redis adalah {"id":"1","name":"Bob"}.

Tidak

Tidak ada nilai default

Deskripsi Parameter writeMode

Ketika Anda mengonfigurasi Redis Writer, Anda hanya dapat menentukan satu tipe data untuk parameter writeMode. Jika Anda tidak mengonfigurasi parameter ini, nilai default string digunakan.

Tipe data nilai

Parameter type (diperlukan)

Parameter mode (diperlukan)

Parameter valueFieldDelimiter (opsional)

Contoh konfigurasi dari parameter writeMode

STRING

Atur parameter type menjadi string.

Merupakan mode yang digunakan Redis Writer untuk menulis data tipe STRING ke Redis. Perhatikan aturan berikut saat Anda mengatur parameter type ke string:

  • Atur parameter mode menjadi set.

  • Jika data yang ingin Anda tulis ke Redis sudah ada di Redis, data yang ada akan ditimpa.

Pembatas yang ingin Anda gunakan untuk memisahkan nilai kolom. Nilai default: \u0001.

  • Parameter ini diperlukan jika Anda menentukan dua kolom atau lebih sebagai nilai. Misalnya, Anda menentukan tiga kolom data sumber sebagai nilai dan menggunakan pembatas default. Dalam hal ini, nilai kolom digabungkan dalam format value1\u0001value2\u0001value3.

  • Parameter ini tidak diperlukan jika Anda menentukan hanya satu kolom sebagai nilai.

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

LIST

Atur parameter type menjadi list.

mode yang digunakan Redis Writer untuk menulis data tipe LIST ke Redis. Nilai yang valid:

  • lpush: menunjukkan bahwa data disimpan di posisi paling kiri dari daftar.

  • rpush: menunjukkan bahwa data disimpan di posisi paling kanan dari daftar.

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

SET

Atur parameter type menjadi set.

Mode yang digunakan Redis Writer untuk menulis data dengan tipe SET ke Redis. Perhatikan aturan berikut saat Anda mengatur parameter type ke set:

  • Atur parameter mode menjadi sadd, yang menunjukkan bahwa data disimpan ke dalam set.

  • Jika data yang ingin Anda tulis ke Redis sudah ada di Redis, data yang ada akan ditimpa.

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

ZSET (set terurut)

Atur parameter type menjadi zset.

Mode di mana Redis Writer menulis data tipe ZSET ke Redis. Perhatikan aturan berikut saat Anda mengatur parameter tipe ke zset:

  • Atur parameter mode menjadi zadd, yang menunjukkan bahwa data disimpan ke dalam set terurut.

  • Jika data yang ingin Anda tulis ke Redis sudah ada di Redis, data yang ada akan ditimpa.

Anda tidak perlu mengonfigurasi parameter ini.

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

Jika tipe data diatur ke ZSET, setiap baris data sumber harus memenuhi persyaratan berikut: Sebuah baris hanya dapat berisi satu skor dan satu nilai selain dari kunci. Skor harus ditempatkan sebelum nilai. Dengan cara ini, Redis Writer dapat membedakan antara skor dan nilai.

HASH

Atur parameter type menjadi hash.

Mode yang digunakan Redis Writer untuk menulis data tipe HASH ke Redis. Perhatikan aturan berikut saat Anda mengatur parameter tipe ke hash:

  • Atur parameter mode menjadi hset, yang menunjukkan bahwa data disimpan ke dalam set hash terurut.

  • Jika data yang ingin Anda tulis ke Redis sudah ada di Redis, data yang ada akan ditimpa.

Anda tidak perlu mengonfigurasi parameter ini.

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

Jika tipe data diatur ke HASH, setiap baris data sumber harus memenuhi persyaratan berikut: Sebuah baris hanya dapat berisi satu atribut dan satu nilai selain dari kunci. Atribut harus ditempatkan sebelum nilai. Dengan cara ini, Redis Writer dapat membedakan antara atribut dan nilai.