26 lines
982 B
Markdown
26 lines
982 B
Markdown
# redis 模块测试报告
|
||
|
||
## 测试场景
|
||
1. **基础操作 (TestBase)**:
|
||
- 验证 `GET`, `SET`, `DEL`, `EXISTS`, `GETSET` 等基本命令。
|
||
- 验证 `EXPIRE` 自动过期功能。
|
||
- 验证结构体自动序列化与反序列化。
|
||
- 验证 `MSET`, `MGET` 批量操作。
|
||
2. **泛型支持 (TestGenerics)**:
|
||
- 验证 `To[T]` 泛型函数对结果的反序列化。
|
||
3. **发布订阅 (TestSub)**:
|
||
- 验证 `Subscribe`, `Unsubscribe`, `PUBLISH` 功能。
|
||
- 验证并发订阅与取消订阅的稳定性。
|
||
|
||
## Benchmark 结果
|
||
```bash
|
||
goos: darwin
|
||
goarch: amd64
|
||
pkg: apigo.cc/go/redis
|
||
cpu: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
|
||
BenchmarkGetSet-16 4057 283694 ns/op
|
||
BenchmarkIdMaker-16 338056 3377 ns/op
|
||
```
|
||
- `BenchmarkGetSet`: 每次 GET+SET 耗时约 283微秒(受本地 Redis 响应速度影响)。
|
||
- `BenchmarkIdMaker`: 每次获取分布式 ID 耗时约 3.4微秒(得益于 100 步长的预取机制)。
|