日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Redis開源版、Redis倚天版、Tair內存型性能白皮書

本文介紹Tair內存型、Redis開源版、Redis倚天版的性能測試結果,以及測試環境、測試工具與測試方法。

測試結果

對包括SET、GET等在內的十余種Redis基礎命令進行性能測試并給出測試指標。

命令

Tair內存型

Redis開源版

Redis倚天版

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

126,493

0.50

1.01

GET

519,761

0.24

0.36

204,690

0.31

0.47

201,492

0.31

0.53

ZADD

208,169

0.62

1.14

113,135

0.57

0.78

90,046

0.71

1.44

ZSCORE

463,904

0.27

0.40

170,163

0.37

0.54

172,508

0.37

0.68

HSET

260,069

0.49

1.03

124,613

0.51

0.97

116,706

0.54

1.12

HGET

494,603

0.25

0.37

188,903

0.34

0.52

175,461

0.36

0.64

LPUSH

286,324

0.44

0.84

153,269

0.42

0.59

129,188

0.49

0.96

LINDEX

414,070

0.30

0.45

157,568

0.40

0.58

154,444

0.41

0.76

SADD

292,738

0.44

0.86

140,155

0.45

0.63

126,199

0.50

0.99

SISMEMBER

531,139

0.24

0.34

181,492

0.35

0.52

211,807

0.30

0.47

EVALSHA

214,303

0.60

1.12

101,136

0.63

0.91

76,659

0.84

2.09

測試指標說明:

  • QPS:每秒處理的讀寫操作數,單位為次/秒。

  • Average Latency:操作的平均延遲時間,單位為毫秒(ms)。

  • 99th Percentile Latency:99%操作延遲,指99%操作的最大延遲時間,單位為毫秒(ms)。例如該指標的值為0.5毫秒,表示99%的請求可以在0.5毫秒內被處理。

說明
  • 測試結果為在多個可用區、對多個實例、進行多次測試的平均值。

  • 測試結果中的延遲為全鏈路延遲,包含數據包在DB側及壓測端排隊的時延。

  • 測試結果受到多種不可控因素的影響,存在約10%的誤差屬于合理范圍。

  • 測試結果僅代表新購實例進行單一命令測試的結果,而生產環境實例的壓力測試請以業務壓測場景為準。

  • 測試結果反映了實例的極限性能,在生產環境中,不建議將實例維持在極限負載狀態。

測試環境

數據庫

測試環境信息

說明

地域和可用區

華北2(北京)可用區L、華東1(杭州)可用區K、華東2(上海)可用區N、華南1(深圳)可用區C。

說明

本測試在多個地域進行,本測試報告僅代表上述可用區的平均性能水平。

實例架構

標準架構(雙副本),不啟用集群,詳情請參見標準架構。

說明

其他架構的性能說明:

  • 集群架構代理模式:當請求的Key分布均勻時,其性能不低于標準架構的n倍。

  • 集群架構直連模式:當請求的Key分布均勻時,其性能等于標準架構的n倍。

  • 讀寫分離架構:寫性能略低于標準架構(因為有更多的復制流量),讀性能不低于標準架構的n倍。

n為集群架構的分片節點數或讀寫分離架構的總節點數。

實例規格

由于測試結果受規格影響較小,本次測試以下實例規格:

  • Tair內存型8 GB(tair.rdb.8g)

  • Redis開源版8 GB(redis.shard.xlarge.ce)

  • Redis倚天版8 GB(redis.shard.xlarge.y.ee)

規格詳情請參見規格查詢導航。

測試客戶端

測試環境信息

說明

部署壓測工具的設備

云服務器ECS實例,規格為ecs.g7.8xlarge,詳情請參見實例規格族。

地域和可用區

與實例對應的地域及可用區。

操作系統

Alibaba Cloud Linux 3。

網絡

Tair實例為相同專有網絡(VPC),且與Tair實例通過專有網絡連接。

測試工具

使用resp-benchmark開源工具進行壓測。SET、GET等常規測試項與redis-benchmark保持一致,在其余測試項中可以更有效地模擬用戶真實場景,壓滿Tair多個線程,從而體現Tair的實際性能。

說明

您可以執行resp-benchmark --help命令獲取更詳細的配置項說明,或訪問其GitHub主頁。

安裝方法

pip install resp-benchmark==0.1.7

測試示例

重要
  • 每次測試時建議先清空數據庫,避免已有數據存在干擾。

  • resp-benchmark在未指定連接數時會自動選擇相對合適的連接數,為測得極限負載下的數據建議手動調整連接數,比如設置為128,可以通過增加參數-c 128實現。連接數過低時,測試壓力不足,導致QPS數據偏低;連接數過高時,測試壓力可能會超過DB的處理能力,數據包會在網絡鏈路中排隊較長時間,導致延遲數據偏高。因為影響因素較多,難以在下文中給出固定的連接數配置,常見的連接數設置為32、64、128、192和256,可根據實際測試情況自行調整。

以下為各命令的測試實例:

  • SET

    該指標代表SET命令的性能。

    測試SET命令,Key范圍為0-10000000(表示生成的Key名稱為key_0000000000~key_0009999999),Value大小為64字節,測試時長20秒:

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

    該指標代表GET命令的性能。

    1. 構造數據,Key范圍為0-10000000,Value大小為64字節:

      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. 測試GET命令,測試時長20秒:

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

    該指標代表ZADD命令的性能。

    測試ZADD的寫性能,Key范圍為0-1000,Score范圍為0-70000,每個Key最多10000個Field,測試時長20秒:

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

    該指標代表ZSCORE命令的性能。

    1. 構造數據,Key范圍為0-1000,Score范圍為0-70000,每個Key最多10007個Field:

      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. 測試ZSCORE命令,測試時長20秒:

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

    該指標代表HSET命令的性能。

    測試HSET命令,Key范圍為0-1000,Field范圍為0-10000,Value大小為64字節,測試時長20秒:

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

    該指標代表HGET命令的性能。

    1. 構造數據,Key范圍為0-1000,每個Key包含10007個Field,數據大小為64字節:

      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. 測試HGET命令,測試時長20秒:

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

    該指標代表LPUSH命令的性能。

    測試LPUSH命令,Key范圍為0-1000,Value大小為64字節,測試時長20秒:

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

    該指標代表LINDEX命令的性能。

    1. 構造數據,Key范圍為0-1000,每個Key包含10000條數據,數據大小為64字節:

      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. 測試LINDEX命令,測試時長20秒:

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

    該指標代表SADD命令的性能。

    測試SADD命令,Key范圍為0-1000,Value大小為64字節,測試時長20秒:

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

    該指標代表SISMEMBER命令的性能。

    1. 構造數據,Key范圍為0-1000,每個Key包含10007條數據,數據大小為64字節:

      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. 測試SISMEMBER命令,測試時長20秒:

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

    該指標代表在EVALSHA中執行SET命令的性能,其中SET命令的Key范圍為0-10000000,Value大小為64字節。

    1. 載入Lua腳本:

      redis-cli -h r-bp1u****8qyvemv2em.redis.rds.aliyuncs.com -p 6379 SCRIPT LOAD "return redis.call('SET', KEYS[1], ARGV[1])"
    2. 測試命令時長20秒:

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