Skip to content

Commit 677ddf7

Browse files
committed
docs(benchmark): 更新性能测试报告数据与分析
- 更新测试时间为 2025年10月30日- 优化同步与异步操作的性能数据展示格式 - 补充 Redisun 在不同并发下的详细性能表现 -修正 Jedis、Lettuce 和 Redisson 的性能对比描述 - 完善各项操作的 OPS 数据表格,增强可读性- 提升文档结构清晰度,便于读者快速获取关键信息
1 parent 5e388ab commit 677ddf7

2 files changed

Lines changed: 71 additions & 63 deletions

File tree

pages/src/content/docs/guides/benchmark.mdx

Lines changed: 57 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { Aside } from '@astrojs/starlight/components';
99

1010
# Redisun vs Redisson vs Jedis vs Lettuce 性能测试报告
1111

12-
测试时间: Wed Oct 29 10:09:36 UTC 2025
12+
测试时间: Thu Oct 30 10:11:42 UTC 2025
1313

1414
## 测试环境
1515

@@ -30,22 +30,30 @@ import { Aside } from '@astrojs/starlight/components';
3030
- 大幅减少连接开销,高并发下表现优异
3131

3232
**客观性能分析**
33-
- **同步SET操作**
34-
- 低并发(1-16):Jedis表现最佳(8322 OPS),Redisun紧随其后(6041-41186 OPS)
35-
- 高并发(64+):Redisun表现最佳,64并发时达到88339 OPS峰值
36-
- **同步GET操作**
37-
- 低并发(1-16):Jedis(8301 OPS)和Lettuce(6249-46040 OPS)表现较好
38-
- 高并发(64+):Redisun表现最佳,128并发时达到65530 OPS峰值
39-
- **异步SET操作**
33+
34+
📌 **同步SET操作详细分析**
35+
- 低并发(1-16):Jedis表现最佳(8457 OPS),Redisun紧随其后(6120-45085 OPS)
36+
- 高并发(64+):Redisun表现最佳,64并发时达到106837 OPS峰值
37+
- Redisun在1-16并发时性能提升显著(6120→45085 OPS),而高并发下保持稳定
38+
39+
📌 **同步GET操作详细分析**
40+
- 低并发(1-16):Jedis表现最佳(8576 OPS),Lettuce和Redisun表现相当(6321-46554 OPS)
41+
- 高并发(64+):Redisun表现最佳,128并发时达到64850 OPS峰值
42+
- Redisun在高并发下性能优势明显,且在2048并发时仍能保持80645 OPS的高性能
43+
44+
📌 **异步SET操作详细分析**
4045
- Redisun表现全面领先,64并发下达到416666 OPS峰值
41-
- 分别是Redisson(37313 OPS)和Lettuce(75987 OPS)的约11倍和5.5倍
42-
- **异步GET操作**
46+
- 分别是Redisson(38431 OPS)和Lettuce(58754 OPS)的约10.8倍和7.1倍
47+
- Redisun在各并发级别下都保持极高的性能水平
48+
49+
📌 **异步GET操作详细分析**
4350
- Redisun表现压倒性领先,64并发下达到364963 OPS峰值
44-
- 分别是Redisson(8101 OPS)和Lettuce(15547 OPS)的约45倍和23倍
51+
- 分别是Redisson(8955 OPS)和Lettuce(9584 OPS)的约40.8倍和38.1倍
52+
- Redisun在异步GET操作中展现出最强的性能优势
4553

4654
📊 **综合评估**
4755
- Redisun在高并发场景下优势明显,特别是在异步操作方面,但低并发下表现一般
48-
- Jedis在低并发场景下表现出色(最高8322 OPS),但高并发下性能下降明显(2048并发时降至31289 OPS)
56+
- Jedis在低并发场景下表现出色(最高8457 OPS),但高并发下性能下降明显(2048并发时降至30525 OPS)
4957
- Lettuce整体表现稳定且较为均衡,在中等并发下表现良好
5058
- Redisson在同步操作中表现尚可,但在异步操作中性能较差
5159

@@ -56,48 +64,45 @@ import { Aside } from '@astrojs/starlight/components';
5664
- **Redisson**:同步操作为主的场景,不推荐用于高并发异步场景
5765
</Aside>
5866

59-
## CONCURRENT SET性能对比
60-
| 客户端数量 | Redisun耗时 | Redisson耗时 | Jedis耗时 | Lettuce耗时 | Redisun OPS | Redisson OPS | Jedis OPS | Lettuce OPS |
67+
## 详细数据
68+
### CONCURRENT SET
69+
| Concurrency | Redisun COST | Redisson COST | Jedis COST | Lettuce COST | Redisun OPS | Redisson OPS | Jedis OPS | Lettuce OPS |
6170
|------------|-------------|--------------|-----------|-------------|-------------|--------------|-----------|-------------|
62-
|1|8275ms|8504ms|6007ms|7923ms|6041|5878|8322|6309|
63-
|8|1746ms|2078ms|1390ms|1489ms|28620|24050|35945|33557|
64-
|16|1213ms|1783ms|1070ms|1066ms|41186|28026|46685|46860|
65-
|64|565ms|1524ms|1032ms|833ms|88339|32786|48402|59952|
66-
|128|661ms|1419ms|1070ms|809ms|75528|35211|46685|61728|
67-
|1024|769ms|1579ms|1361ms|854ms|64935|31645|36710|58479|
68-
|2048|830ms|1719ms|1597ms|1061ms|60168|29069|31289|47080|
69-
70-
## CONCURRENT GET性能对比
71-
| 客户端数量 | Redisun耗时 | Redisson耗时 | Jedis耗时 | Lettuce耗时 | Redisun OPS | Redisson OPS | Jedis OPS | Lettuce OPS |
71+
|1|8168ms|8335ms|5911ms|7882ms|6120|5998|8457|6342|
72+
|8|1525ms|2065ms|1334ms|1466ms|32765|24201|37453|34083|
73+
|16|987ms|1737ms|1108ms|1043ms|50607|28768|45085|47892|
74+
|64|467ms|1552ms|1043ms|786ms|106837|32195|47892|63532|
75+
|128|537ms|1392ms|1054ms|809ms|92936|35893|47393|61728|
76+
|1024|686ms|1505ms|1473ms|861ms|72780|33200|33921|58004|
77+
|2048|730ms|1755ms|1637ms|952ms|68399|28473|30525|52465|
78+
### CONCURRENT GET
79+
| Concurrency | Redisun COST | Redisson COST | Jedis COST | Lettuce COST | Redisun OPS | Redisson OPS | Jedis OPS | Lettuce OPS |
7280
|------------|-------------|--------------|-----------|-------------|-------------|--------------|-----------|-------------|
73-
|1|8352ms|8521ms|6022ms|8000ms|5985|5867|8301|6249|
74-
|8|2099ms|2119ms|1351ms|1494ms|23809|23584|36982|33444|
75-
|16|1181ms|1800ms|1116ms|1085ms|42301|27762|44762|46040|
76-
|64|782ms|1529ms|1131ms|814ms|63856|32679|44169|61349|
77-
|128|762ms|2096ms|1143ms|746ms|65530|23843|43706|66934|
78-
|1024|785ms|1487ms|1356ms|836ms|63613|33602|36845|59737|
79-
|2048|793ms|1700ms|1899ms|943ms|62972|29394|26315|52966|
80-
81-
## ASYNC SET性能对比
82-
| 客户端数量 | Redisun耗时 | Redisson耗时 | Jedis耗时 | Lettuce耗时 | Redisun OPS | Redisson OPS | Jedis OPS | Lettuce OPS |
81+
|1|8164ms|8291ms|5829ms|7908ms|6123|6029|8576|6321|
82+
|8|1587ms|2088ms|1350ms|1603ms|31486|23934|37009|31172|
83+
|16|1081ms|1736ms|1073ms|1106ms|46210|28785|46554|45167|
84+
|64|647ms|1466ms|1102ms|767ms|77160|34083|45330|65104|
85+
|128|770ms|1354ms|1128ms|746ms|64850|36900|44286|66934|
86+
|1024|679ms|1495ms|1575ms|778ms|73529|33422|31725|64184|
87+
|2048|619ms|1668ms|1734ms|927ms|80645|29958|28818|53879|
88+
### ASYNC SET
89+
| Concurrency | Redisun COST | Redisson COST | Jedis COST | Lettuce COST | Redisun OPS | Redisson OPS | Jedis OPS | Lettuce OPS |
8390
|------------|-------------|--------------|-----------|-------------|-------------|--------------|-----------|-------------|
84-
|1|144ms|1399ms|-|566ms|344827|35714|-|88183|
85-
|8|223ms|1375ms|-|632ms|223214|36337|-|78988|
86-
|16|144ms|1485ms|-|817ms|344827|33647|-|61124|
87-
|64|119ms|1339ms|-|657ms|416666|37313|-|75987|
88-
|128|155ms|1383ms|-|727ms|320512|36127|-|68681|
89-
|1024|165ms|1430ms|-|738ms|301204|34940|-|67658|
90-
|2048|141ms|1148ms|-|605ms|352112|43516|-|82508|
91-
92-
## ASYNC GET性能对比
93-
| 客户端数量 | Redisun耗时 | Redisson耗时 | Jedis耗时 | Lettuce耗时 | Redisun OPS | Redisson OPS | Jedis OPS | Lettuce OPS |
91+
|1|121ms|1351ms|-|666ms|409836|36982|-|74962|
92+
|8|124ms|1299ms|-|533ms|400000|38461|-|93632|
93+
|16|114ms|1256ms|-|723ms|434782|39777|-|69060|
94+
|64|122ms|1300ms|-|850ms|406504|38431|-|58754|
95+
|128|177ms|1219ms|-|655ms|280898|40983|-|76219|
96+
|1024|82ms|1342ms|-|679ms|602409|37230|-|73529|
97+
|2048|104ms|1370ms|-|724ms|476190|36469|-|68965|
98+
### ASYNC GET
99+
| Concurrency | Redisun COST | Redisson COST | Jedis COST | Lettuce COST | Redisun OPS | Redisson OPS | Jedis OPS | Lettuce OPS |
94100
|------------|-------------|--------------|-----------|-------------|-------------|--------------|-----------|-------------|
95-
|1|154ms|3721ms|-|4258ms|322580|13433|-|11739|
96-
|8|178ms|5547ms|-|6502ms|279329|9012|-|7688|
97-
|16|148ms|5943ms|-|5748ms|335570|8411|-|8697|
98-
|64|136ms|6171ms|-|3215ms|364963|8101|-|15547|
99-
|128|156ms|6099ms|-|5967ms|318471|8196|-|8378|
100-
|1024|303ms|9296ms|-|5250ms|164473|5378|-|9521|
101-
|2048|348ms|7596ms|-|5196ms|143266|6581|-|9620|
102-
101+
|1|125ms|3226ms|-|4337ms|396825|15494|-|11526|
102+
|8|111ms|3432ms|-|5514ms|446428|14564|-|9066|
103+
|16|131ms|5637ms|-|6149ms|378787|8868|-|8130|
104+
|64|115ms|5582ms|-|5216ms|431034|8955|-|9584|
105+
|128|143ms|5660ms|-|4455ms|347222|8832|-|11220|
106+
|1024|231ms|4791ms|-|5266ms|215517|10434|-|9493|
107+
|2048|324ms|7219ms|-|9325ms|153846|6925|-|5361|
103108
> 注意:由于 GitHub Actions 环境限制,测试结果可能不如本地环境准确。Jedis 不支持原生异步操作,因此标记为 -。

src/main/java/tech/smartboot/redisun/Redisun.java

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
import java.util.Map;
5151
import java.util.concurrent.CompletableFuture;
5252
import java.util.function.Consumer;
53+
import java.util.function.Function;
5354

5455
/**
5556
* Redisun客户端主类
@@ -391,19 +392,21 @@ public CompletableFuture<Boolean> asyncSet(String key, String value, Consumer<Se
391392
if (options != null) {
392393
options.accept(cmd);
393394
}
394-
return execute(cmd).thenApply(resp -> {
395-
if (resp == SimpleStrings.OK_RESP) {
396-
return true;
397-
} else if (resp instanceof SimpleStrings) {
398-
return SimpleStrings.OK.equals(resp.getValue());
399-
} else if (resp instanceof Nulls) {
400-
return false;
401-
} else {
402-
throw new RedisunException("invalid response:" + resp);
403-
}
404-
});
395+
return execute(cmd).thenApply(SET_CMD_FUTURE);
405396
}
406397

398+
private static final Function<RESP, Boolean> SET_CMD_FUTURE = resp -> {
399+
if (resp == SimpleStrings.OK_RESP) {
400+
return true;
401+
} else if (resp instanceof SimpleStrings) {
402+
return SimpleStrings.OK.equals(resp.getValue());
403+
} else if (resp instanceof Nulls) {
404+
return false;
405+
} else {
406+
throw new RedisunException("invalid response:" + resp);
407+
}
408+
};
409+
407410
/**
408411
* 同时获取一个或多个 key 的值
409412
*

0 commit comments

Comments
 (0)