redis/TEST.md

1.4 KiB

redis 模块测试报告

测试环境管理

  • 自动环境检查 (TestMain): 测试启动时会自动检查 localhost:6379 的 Redis 服务。如果不可用,将打印跳过信息并退出,避免测试在无环境时报错。

测试场景

  1. 基础操作 (TestBase):
    • 验证 GET, SET, DEL, EXISTS, GETSET 等基本命令。
    • 验证 EXPIRE 自动过期功能(等待 1.1s 确保失效)。
    • 验证结构体自动序列化与反序列化。
    • 验证 MSET, MGET 批量操作。
  2. 分布式 ID (TestIdMaker):
    • 验证 NewIdMaker 结合 Redis 生成唯一 ID 的能力。
    • 验证生成 200 个 ID 无碰撞。
    • 验证 GetForMysqlGetForPostgreSQL 的长度与格式。
  3. 泛型支持 (TestGenerics):
    • 验证 To[T] 泛型函数对结果的反序列化。
  4. 发布订阅 (TestSub):
    • 验证 Subscribe, Unsubscribe, PUBLISH 功能。
    • 验证并发订阅与取消订阅的稳定性。

Benchmark 结果

goos: darwin
goarch: amd64
pkg: apigo.cc/go/redis
cpu: Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz
BenchmarkGetSet-16          3924            256649 ns/op
BenchmarkIdMaker-16       392859              3017 ns/op
  • BenchmarkGetSet: 每次 GET+SET 耗时约 256微秒。
  • BenchmarkIdMaker: 每次获取分布式 ID 耗时约 3.0微秒(预取机制效率显著)。