Garnet 真比 Redis 快吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
keakon
V2EX    Redis

Garnet 真比 Redis 快吗?

  keakon
keakon 2024-04-27 14:10:26 +08:00 6640 次点击
这是一个创建于 595 天前的主题,其中的信息可能已经有所发展或是发生改变。

用 Docker 跑了下 redis-benchmark:

  • Redis 大部分测试约 17w qps
  • 单 CPU 时,Garnet 大部分测试约 3w qps
  • 不限制 CPU (共 10 核)时,CPU 占用率约 300%,大部分测试约 4w qps

难道要用 C# 跑测试才能发挥 Garnet 的性能? https://microsoft.github.io/garnet/docs/benchmarking/results-resp-bench

15 条回复    2024-04-28 11:24:03 +08:00
bthulu
    1
bthulu  
   2024-04-27 14:14:51 +08:00   1
我不信, 视频发来看看
hez2010
    2
hez2010  
   2024-04-27 14:19:05 +08:00   2
我也跑过,用的 mentier_benchmark ,同样是 redis 自己出品的 benchmark 工具。

单线程:

![single]( )

多线程:

![multi]( )

无论单线程还是多线程 garnet 都比 redis 更快。
qweruiop
    3
qweruiop  
   2024-04-27 15:41:29 +08:00   1
我们有个新项目已经迁移到 garnet 了,是比 redis 快。。。
povsister
    4
povsister  
   2024-04-27 15:59:18 +08:00
@hez2010
这数据看起来有点顶啊
lsk569937453
    5
lsk569937453  
   2024-04-27 16:12:52 +08:00
https://github.com/lsk569937453/rcache

用 rust 实现的 redis ,用 redis-benchmark 测试,4 核 8G 下,rcache 的 tps 是 redis 的两倍。我这还是简单的直接用全局锁一个 Map ,不知道 garnet 用的什么黑科技。

缺点就是 rcache 多线程下 cpu 几乎能跑满,而 redis 的 cpu 一直稳定在 100%左右(这就是单线程的魅力吗。。。)
sujin190
    6
sujin190  
   2024-04-27 16:40:02 +08:00 via Android
@hez2010 没懂你这是服务端多线程还是测试工具多线程,否则就算单核也不可能这么低吧,话说咱要测的是服务端性能吧,而且差距这么大 128 核心?
matrix1010
    7
matrix1010  
   2024-04-27 16:59:44 +08:00
hez2010
    8
hez2010  
   2024-04-27 17:02:29 +08:00
@sujin190 单线程的测试设置了 pipeline=1 ,意味着一次请求返回之后才会进行下一次请求。而多线程的 pipeline 设置的 1024 ,能够充分利用计算机资源。
qcbf111
    9
qcbf111  
   2024-04-27 17:40:39 +08:00
c#还是牛逼呀,unity 好像能升级到最新版.net 就好了
keakon
    10
keakon  
OP
   2024-04-27 18:11:41 +08:00
@hez2010 加了 -P 1024 后,分别是 218w 、68w 和 80w ,差距小了一点。。
sujin190
    11
sujin190  
   2024-04-27 18:39:12 +08:00 via Android
@hez2010 话说似乎 garnet 是多核多线程的吧,redis 似乎是单线程的,应该是负载一样的来比吧
simple2025
    12
simple2025  
   2024-04-27 18:47:15 +08:00
但是一般 redis 的性能就够了吧,而且因为 redis 处理逻辑上是单线程,所以可以确实不会因为什么 lock 问题导致数据出现问题.
wxf666
    13
wxf666  
   2024-04-27 19:40:11 +08:00
@hez2010 #8 如果 8 线程访问 Redis ,每个线程 pipeline 都是 1 。这算啥?
hez2010
    14
hez2010  
   2024-04-27 19:56:40 +08:00
@wxf666 我测的单线程是 1 client 1 thread 1 concurrency 1 pipeline 的。
displayabc
    15
displayabc  
   2024-04-28 11:24:03 +08:00
@sujin190 为什么要负载一样来比?就是要比极限啊
关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2492 人在线   最高记录 6679       Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 25ms UTC 05:09 PVG 13:09 LAX 21:09 JFK 00:09
Do have faith in what you're doing.
ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86