Redis get vs. mget Benchmark
短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
Redis get
vs. mget
Benchmark
0. Background
Scripts
#!/bin/bash
key="testkey"
value="testvalue"
int=0
while (($int <= 1024)); do
echo -e $key$int $value
redis-cli set $key$int $value
let "int++"
done
#!/bin/bash
int=0
keys=""
while (($int < 64)); do
keys="$keys",""testkey$int""
let "int++"
done
redis-benchmark -n 100000 script load "redis.call("mget"$keys)"
System Info
[p1gd0g@p1gd0g-pc ~]$ screenfetch
██████████████████ ████████ p1gd0g@p1gd0g-pc
██████████████████ ████████ OS: Manjaro 19.0.2 Kyria
██████████████████ ████████ Kernel: x86_64 Linux 5.4.31-1-MANJARO
██████████████████ ████████ Uptime: 1h 1m
████████ ████████ Packages: 1224
████████ ████████ ████████ Shell: bash
████████ ████████ ████████ Resolution: 1920x1080
████████ ████████ ████████ DE: GNOME 3.36.1
████████ ████████ ████████ WM: Mutter
████████ ████████ ████████ WM Theme: Matcha-sea
████████ ████████ ████████ GTK Theme: Matcha-sea [GTK2/3]
████████ ████████ ████████ Icon Theme: Papirus-Dark-Maia
████████ ████████ ████████ Font: Noto Sans 11
████████ ████████ ████████ Disk: 41G / 473G (10%)
CPU: AMD Ryzen 5 3550H with Radeon Vega Mobile Gfx @ 8x 2.1GHz
GPU: AMD RAVEN (DRM 3.35.0, 5.4.31-1-MANJARO, LLVM 9.0.1)
RAM: 2237MiB / 6956MiB
Redis version
Redis server v=5.0.8 sha=00000000:0 malloc=jemalloc-5.2.1 bits=64 build=b2bf869b5247fdeb
1. get
vs. mget
redis-benchmark -n 100000 script load "redis.call("get", "testkey0")"
====== script load redis.call("get", "testkey0") ======
100000 requests completed in 0.65 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.98% <= 1 milliseconds
100.00% <= 1 milliseconds
152905.20 requests per second
redis-benchmark -n 100000 script load "redis.call("mget", "testkey0")"
====== script load redis.call("mget", "testkey0") ======
100000 requests completed in 0.66 seconds
50 parallel clients
3 bytes payload
keep alive: 1
99.99% <= 1 milliseconds
100.00% <= 1 milliseconds
151975.69 requests per second
cmd | RPS(9 bytes) | RPS(18 bytes) | RPS(36 bytes) | RPS(72 bytes) | RPS(144 bytes) | RPS(288 bytes) | RPS(576 bytes) | RPS(1152 bytes) | RPS(2304 bytes) |
---|---|---|---|---|---|---|---|---|---|
get |
152905 | 152207 | 151285 | 156494.52 | 148148.14 | 148588.42 | 150602.42 | 149700.61 | 144508.67 |
mget (1) |
151975 | 152207 | 141242 | 149253.73 | 151975.69 | 152671.77 | 145985.41 | 145348.83 | 152439.02 |
mget (2) |
146842 | 148809 | 152207 | 150602.42 | 152905.20 | 147929.00 | 147492.62 | 152439.02 | 150829.56 |
mget (4) |
151745 | 152439 | 154798 | 150829.56 | 149700.61 | 152439.02 | 151975.69 | 149253.73 | 149031.30 |
mget (8) |
148148 | 148367 | 144717 | 150602.42 | 152905.20 | 142045.45 | 147058.83 | 151057.41 | 144092.22 |
mget (16) |
155763 | 147275 | 158478 | 151745.08 | 152905.20 | 151057.41 | 148148.14 | 152905.20 | 149700.61 |
mget (32) |
150375 | 151057 | 156739 | 159489.64 | 147058.83 | 154559.50 | 151745.08 | 149925.03 | 151057.41 |
mget (64) |
154559 | 143678 | 145985 | 147275.41 | 145560.41 | 152207.00 | 151745.08 | 151285.92 | 144927.53 |
mget (128) |
124688 | 130208 | 125156 | 131233.59 | 127226.46 | 123915.74 | 129032.27 | 123456.79 | 124223.60 |
mget (256) |
14714 | 14952 | 15130 | 14744.91 | 14677.82 | 15003.75 | 14974.54 | 15117.16 | 14988.01 |
mget (512) |
13455 | 13904 | 13925 | 13892.75 | 14046.92 | 13886.96 | 13804.53 | 13958.68 | 13976.24 |
mget (1024) |
11825 | 12051 | 12032 | 11748.12 | 11526.05 | 11923.21 | 12003.36 | 12195.12 | 12105.07 |
2. set
vs. mset
cmd | RPS |
---|---|
set |
152671 |
mset (1) |
151057 |
mset (2) |
149476 |
mset (4) |
147710 |
mset (8) |
145772 |
mset (16) |
145985 |
mset (32) |
145137 |
mset (64) |
122549 |
mset (128) |
15820 |
mset (256) |
14524 |
mset (512) |
12751 |
mset (1024) |
9726 |
3. What happended if keys=248?
keys | RPS |
---|---|
mget (128) |
124688 |
mget (192) |
110497 |
mget (224) |
99502 |
mget (240) |
95147 |
mget (244) |
94966 |
mget (246) |
94607 |
mget (247) |
93896 |
mget (248) |
14945 |
mget (256) |
14714 |
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341