GaussDB(for Redis)与原生Redis的性能对比
说明
本文以原生Redis5.0为例,分析其与GaussDB(for Redis)(下文简称高斯 Redis)的性能、成本比拼。
对比
成本比拼
原生Redis的数据存放在内存中,高斯 Redis的数据存放在磁盘中,我们比较相同数据容量(192G)的成本开销。
即使不考虑原生Redis的内存利用率打折,也可以得出,高斯 Redis的成本是原生Redis的1/3。
压缩比拼
采用Redis社区开源的压测工具memtier_benchmark写入相同的数据量,比较在两种数据库的空间占用:
原生Redis实例 | 高斯 Redis实例 | |
set命令压入数据 | 31.23GB | 7.5GB |
hset命令压入数据 | 53.62GB | 12.7GB |
即用户写入数据量一样的情况下,高斯 Redis的数据压缩比是原生Redis的4倍,因此用户在购买相同数据容量的前提下,高斯 Redis可以存4倍用户数据。
性能比拼
1. 环境准备
Redis Labs推出的多线程压测工具memtier_benchmark,它能够产生各种各样的流量模型。因此采用memtier_benchmark对原生Redis实例和高斯 Redis实例进行性能评测。
因为高斯 Redis最小实例的容量是48G,因此购买对标的原生Redis实例,为64G主从规格(实际可用内存“号称51.2G”)。
2. 测试结果
|
对比指标 |
高斯 Redis |
原生Redis |
set(value=128bytes) |
QPS |
13.06W |
11.23W |
平均时延(毫秒) |
11.67 |
13.20 |
|
P99 |
38 |
22 |
|
set(value=1024bytes) |
QPS |
10.28W |
8.11W |
平均时延 |
24.20 |
16.63 |
|
P99 |
80 |
31 |
|
get |
QPS |
39.72W |
16.76W |
平均时延 |
3.81 |
3.20 |
|
P99 |
24 |
4 |
|
setget (ratio=1:1,value=128bytes) |
QPS |
19.93W |
13.11W |
平均时延 |
7.42 |
3.81 |
|
P99 |
set:32,get:32 |
set:5.8,get:5.9 |
|
setget (ratio=1:1,value=1024bytes) |
QPS |
17.86W |
9.96W |
平均时延 |
7.22 |
13.59 |
|
P99 |
set:30,get:30 |
set:22,get:22 |
|
hset(value=1024bytes) |
QPS |
9.88W |
7.17W |
平均时延 |
15.11 |
20.91 |
|
P99 |
72 |
36 |
|
hget |
QPS |
41.35W |
15.96W |
平均时延 |
3.53 |
9.39 |
|
P99 |
30 |
13 |
|
hset hget (ratio=1:1,value=1024bytes)
|
QPS |
18.47W |
10.07W |
平均时延 |
8.13 |
14.87 |
|
P99 |
hset:54,hget53 |
hset:24hget24 |
总结
1. 结论:
与原生Redis实例相比,高斯 Redis在成本、可用容量、吞吐、压缩,都有非常巨大的优势,平均时延两者接近,p99时延有1倍差距。
|
开源Redis |
高斯 Redis |
可用空间 |
51.2GB |
192GB |
每小时 |
¥27 |
¥9 |
压缩率 |
1倍 |
4倍 |
吞吐比 |
1倍 |
1.5倍 |
平均时延 |
不相上下 |
不相上下 |
P99 |
1倍 |
2倍 |
2. 体会:
在压测过程中,原生Redis由于容量小、数据无压缩,经常碰到OOM问题。推测下OOM原因,规格为64G的实例,其可用内存并没有宣称的51.2G那么大(怀疑只有50%)。另外,写压测时,流量太大很容易导致原生Redis主从堆积,进而触发RDB快照,导致OOM。而高斯 Redis抗写能力更稳定,且数据强一致存储,无主从堆积问题。可轻松应对业务扩张。
- 点赞
- 收藏
- 关注作者
评论(0)