All Products
Search
Document Center

Tair (Redis® OSS-Compatible):Whitepaper performa untuk Redis Open-Source Edition, instans Tair memory-optimized, dan Tair Persistent Memory-optimized

Last Updated:Aug 13, 2026

Whitepaper ini mencakup tolok ukur throughput puncak dan latensi untuk instans Tair memory-optimized, Tair Persistent Memory-optimized, dan Redis Open-Source Edition, serta lingkungan pengujian, tool, dan perintah yang diperlukan untuk mereproduksi hasil tersebut.

Hasil pengujian

Penting

Angka berikut mencerminkan performa puncak pada instans baru dalam pengujian perintah tunggal, dirata-ratakan dari beberapa kali pengujian di berbagai zona. Margin kesalahan sekitar 10% merupakan hal yang normal. Jangan menjalankan instans pada beban puncak di lingkungan produksi. Untuk penentuan ukuran yang akurat, lakukan pengujian dengan workload Anda sendiri.

Tabel berikut menampilkan pengukuran QPS dan latensi untuk sebelas perintah Redis umum.

Command

Tair memory-optimized

Redis Open-Source Edition

Tair Persistent Memory-optimized

QPS

Average Latency

99th Percentile Latency

QPS

Average Latency

99th Percentile Latency

QPS

Average Latency

99th Percentile Latency

SET

282.656

0,45

0,86

142.376

0,45

0,72

135.247

0,93

1,50

GET

519.761

0,24

0,36

204.690

0,31

0,47

208.960

0,61

0,90

ZADD

208.169

0,62

1,14

113.135

0,57

0,78

96.007

1,29

1,90

ZSCORE

463.904

0,27

0,40

170.163

0,37

0,54

154.693

0,82

1,00

HSET

260.069

0,49

1,03

124.613

0,51

0,97

68.565

1,81

3,80

HGET

494.603

0,25

0,37

188.903

0,34

0,52

180.050

0,70

0,91

LPUSH

286.324

0,44

0,84

153.269

0,42

0,59

143.951

0,87

1,20

LINDEX

414.070

0,30

0,45

157.568

0,40

0,58

62.112

2,01

2,80

SADD

292.738

0,44

0,86

140.155

0,45

0,63

138.710

0,90

1,20

SISMEMBER

531.139

0,24

0,34

181.492

0,35

0,52

162.585

0,78

0,99

EVALSHA

214.303

0,60

1,12

101.136

0,63

0,91

89.726

1,38

2,10

image

Definisi metrik:

  • QPS (Queries Per Second): Jumlah operasi baca dan tulis yang diproses per detik.

  • Average latency: Latensi operasi rata-rata, dalam milidetik (ms).

  • 99th percentile latency: Latensi maksimum untuk 99% operasi, dalam ms. Misalnya, 0,5 ms berarti 99% permintaan selesai dalam waktu 0,5 ms.

Latensi diukur secara end-to-end, termasuk waktu antrian baik di database maupun di client uji stres.
Peningkatan tiba-tiba pada latensi persentil ke-99 dapat dipicu oleh transisi encoding struktur data, terutama saat menulis ke instans kosong untuk pertama kalinya.

Skalabilitas performa untuk arsitektur lainnya

Tabel di atas mencakup arsitektur standar (dual-replica). Untuk arsitektur lainnya, skala dari garis dasar standar menggunakan aturan berikut, di mana *n* adalah jumlah shard dalam arsitektur kluster atau jumlah total node dalam arsitektur pemisahan baca/tulis:

Architecture

QPS scaling rule

Cluster (proxy mode)

>= n x QPS arsitektur standar (dengan kunci yang terdistribusi merata)

Cluster (direct connection mode)

= n x QPS arsitektur standar (dengan kunci yang terdistribusi merata)

Read/write splitting

Tulis: sedikit di bawah standar karena traffic replikasi yang lebih tinggi; Baca: >= n x QPS arsitektur standar

Lingkungan pengujian

Database

Parameter

Value

Regions and zones

China (Beijing) Zone L, China (Hangzhou) Zone K, China (Shanghai) Zone N, China (Shenzhen) Zone C

Instance architecture

Standard architecture (dual-replica); cluster not enabled

Instance version

Redis 7.0

Instance types

Tair memory-optimized 8 GB (tair.rdb.8g); Tair Persistent Memory-optimized 8 GB (tair.scm.standard.2m.8d); Redis Open-Source Edition 8 GB (redis.shard.xlarge.ce)

Versi memiliki dampak kecil terhadap hasil pengujian.

Untuk informasi lebih lanjut, lihat Standard architecture dan Instance types and FAQ.

Test client

Parameter

Value

Instance type

Elastic Compute Service (ECS) ecs.g7.8xlarge

Region and zone

Same as the database instance

Operating system

Alibaba Cloud Linux 3

Network

Same virtual private cloud (VPC) as the Tair instance

Tool pengujian

Semua pengujian menggunakan resp-benchmark, sebuah tool open-source dari tim Tair.

  • Untuk perintah umum (SET, GET), perilakunya konsisten dengan redis-benchmark.

  • Untuk perintah kompleks, tool ini menggunakan mode pengujian yang lebih menyerupai workload dunia nyata.

  • Mode multi-threaded diaktifkan secara default untuk memaksimalkan tekanan permintaan pada server dan mencegah client menjadi bottleneck.

Instal resp-benchmark:

pip install resp-benchmark==0.1.7

Setelah instalasi, jalankan resp-benchmark --help untuk daftar lengkap opsi konfigurasi.

Jika Anda menggunakan redis-benchmark, gunakan Redis 7.0 atau versi yang lebih baru untuk dukungan multi-threaded yang optimal.

Jalankan pengujian

Sebelum memulai

Bersihkan database sebelum setiap pengujian untuk menghindari gangguan dari data yang sudah ada.

Atur jumlah koneksi

Jumlah koneksi (-c) secara langsung memengaruhi hasil Anda:

  • Terlalu sedikit koneksi: Beban pada server tidak mencukupi, menghasilkan QPS rendah yang tidak mencerminkan kapasitas puncak.

  • Terlalu banyak koneksi: Kapasitas pemrosesan server terlampaui, menyebabkan paket data mengantri di tautan jaringan dan meningkatkan latensi.

Mulailah dengan -c 128 dan sesuaikan berdasarkan hasil Anda. Nilai umum adalah 32, 64, 128, 192, dan 256. Jika Anda menghilangkan -c, resp-benchmark akan memilih nilai secara otomatis.

Perintah pengujian

SET

Menguji performa perintah SET. Rentang kunci: 0–10.000.000. Ukuran nilai: 64 byte. Durasi pengujian: 20 detik.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SET {key uniform 10000000} {value 64}"

GET

Menguji performa perintah GET. Ukuran nilai: 64 byte. Durasi pengujian: 20 detik.

  1. Muat data pengujian. Rentang kunci: 0–10.000.000.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10000000 "SET {key sequence 10000000} {value 64}"
  2. Jalankan pengujian GET.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "GET {key uniform 10000000}"

ZADD

Menguji performa tulis perintah ZADD. Rentang kunci: 0–1.000. Rentang skor: 0–70.000. Maksimal 10.000 anggota per kunci. Durasi pengujian: 20 detik.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "ZADD {key uniform 1000} {rand 70000} {key uniform 10000}"

ZSCORE

Menguji performa perintah ZSCORE. Durasi pengujian: 20 detik.

  1. Muat data pengujian. Rentang kunci: 0–1.000. 10.007 anggota per kunci.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "ZADD {key sequence 1000} {rand 70000} {key sequence 10007}"
  2. Jalankan pengujian ZSCORE.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "ZSCORE {key uniform 1000} {key uniform 10007}"

HSET

Menguji performa perintah HSET. Rentang kunci: 0–1.000. Rentang field: 0–10.000. Ukuran nilai: 64 byte. Durasi pengujian: 20 detik.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "HSET {key uniform 1000} {key uniform 10000} {value 64}"

HGET

Menguji performa perintah HGET. Durasi pengujian: 20 detik.

  1. Muat data pengujian. Rentang kunci: 0–1.000. 10.007 field per kunci. Ukuran nilai: 64 byte.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "HSET {key sequence 1000} {key sequence 10007} {value 64}"
  2. Jalankan pengujian HGET.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "HGET {key uniform 1000} {key uniform 10007}"

LPUSH

Menguji performa perintah LPUSH. Rentang kunci: 0–1.000. Ukuran nilai: 64 byte. Durasi pengujian: 20 detik.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "LPUSH {key uniform 1000} {value 64}"

LINDEX

Menguji performa perintah LINDEX. Durasi pengujian: 20 detik.

  1. Muat data pengujian. Rentang kunci: 0–1.000. 10.000 elemen per kunci. Ukuran nilai: 64 byte.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10000000 "LPUSH {key sequence 1000} {value 64}"
  2. Jalankan pengujian LINDEX.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "LINDEX {key uniform 1000} {rand 10000}"

SADD

Menguji performa perintah SADD. Rentang kunci: 0–1.000. Ukuran nilai: 64 byte. Durasi pengujian: 20 detik.

resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SADD {key uniform 1000} {value 64}"

SISMEMBER

Menguji performa perintah SISMEMBER. Durasi pengujian: 20 detik.

  1. Muat data pengujian. Rentang kunci: 0–1.000. 10.007 anggota per kunci. Ukuran nilai: 64 byte.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 --load -c 256 -P 10 -n 10007000 "SADD {key sequence 1000} {key sequence 10007}"
  2. Jalankan pengujian SISMEMBER.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "SISMEMBER {key uniform 1000} {key uniform 10007}"

EVALSHA

Menguji performa SET yang dieksekusi melalui skrip Lua. Rentang kunci: 0–10.000.000. Ukuran nilai: 64 byte. Durasi pengujian: 20 detik.

  1. Muat skrip Lua.

    redis-cli -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 SCRIPT LOAD "return redis.call('SET', KEYS[1], ARGV[1])"
  2. Jalankan pengujian EVALSHA menggunakan digest SHA1 yang dikembalikan pada langkah sebelumnya.

    resp-benchmark -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 -s 20 "EVALSHA d8f2fad9f8e86a53d2a6ebd960b33c4972cacc37 1 {key uniform 10000000} {value 64}"