3.7 KiB
3.7 KiB
CHANGELOG - redis
v1.0.7 (2026-05-09)
- 基础设施对齐:
- 升级
apigo.cc/go/log至v1.1.13。 redis包不涉及自定义日志类型,本次升级无代码变更。
- 升级
v1.0.6 (2026-05-07)
- Security & Compatibility:
- 增强
Redis密码解密逻辑,支持 URL-safe Base64 编码的加密密码,提升多平台配置兼容性。
- 增强
- Maintenance:
- 升级依赖
apigo.cc/go/cast(v1.2.8) 与apigo.cc/go/log(v1.1.9)。 - 依赖
apigo.cc/go/encoding(v1.0.5) 正式转为显式引用。
- 升级依赖
v1.0.5 (2026-05-06)
- Maintenance:
- 内部依赖对齐与升级 (
config,crypto,id,safe等至 v1.0.5/v1.0.6)。 - 移除了冗余的
replace指令,清理go.sum。
- 内部依赖对齐与升级 (
v1.0.4 (2026-05-06)
- Maintenance:
- 添加
.gitignore以排除日志元数据。 - 升级
apigo.cc/go/log至 v1.1.3。
- 添加
v1.0.3 (2026-05-05)
- PubSub Robustness:
- 重构
Redis结构体,引入pubsub内部结构 management 共享状态。 - 修复了
CopyByLogger场景下subsmap 与subLock不匹配导致的并发竞争风险。 - 优化
Start()方法,增加运行状态检查,防止冗余的订阅协程启动。 - 增强
Stop()方法的生命周期管理,确保协程安全退出并清理停止通道。
- 重构
v1.0.2 (2026-05-04)
- Naming Standardization:
- 全面将
Id命名规范化为ID(涉及IDMaker,NewIDMaker,userInfo.ID等)。
- 全面将
- Performance & Efficiency:
- 优化
commands.go: 所有 Redis 命令调用改为参数化传递,消除字符串拼接,提升解析性能并防止 Key 包含空格的问题。 - 优化
redis.go: 在do方法中增加判断,若命令不含空格则跳过Split处理,减少内存分配。
- 优化
- Modernity & Robustness:
- 升级错误处理逻辑,使用
errors.As和errors.Is替换旧式的类型断言。 - 增强
Result.To方法,增加对目标对象非空指针的强制校验。 - 完善
do方法对values的nil指针检查。
- 升级错误处理逻辑,使用
- Cleanup:
- 删除了冗余的
AI.md文件。
- 删除了冗余的
- Testing:
- 新增
TestRetry用例,验证连接异常时的自动恢复逻辑。
- 新增
v1.0.1 (2026-05-03)
- Security & Stability:
- 修复了
Pub/Sub模块中subsmap 和subConn的并发访问竞争风险(Race Condition),引入subLock互斥锁。
- 修复了
- Cleanup:
- 移除了
Redis结构体中冗余的ReadTimeout字段,统一由Config管理。
- 移除了
- Testing & CI/CD:
- 新增
TestMain自动环境检查,若 Redis 不可用则优雅跳过测试,不中断 CI 流程。 - 新增
TestIdMaker覆盖分布式 ID 生成逻辑。 - 新增
bench_test.go,建立性能基准测试。 - 新增
TEST.md记录测试覆盖场景与 Benchmark 结果。
- 新增
v1.0.0 (2026-05-03)
- Repo Migration: 从
@ssgo/redis迁移至apigo.cc/go/redis。 - Standard Realignment:
- 依赖全面切换至
apigo.cc/go/*标准库。 - 适配 Go 1.25.0。
- 依赖全面切换至
- Feature Enhancements:
- Generics: 为
Result引入泛型To[T]支持,消除类型断言摩擦。 - Memory Safety: 集成
go/safe对 Redis 密码进行实时加解密与内存锁定,防止内存泄漏敏感信息。 - Auto-Serialization: 优化了
Do方法,支持对 Struct/Map/Slice 自动进行 JSON 序列化(优先支持 Marshaler 接口)。 - Distributed ID: 深度集成
go/id核心,提供更高性能的 Redis 序列号预取机制。
- Generics: 为
- Refactoring:
- 移除了冗余的
interface{},全面改用any。 - 规范化了 API 命名,统一使用
GetUpperName进行 Struct 字段映射。 - 增强了连接重试机制,支持对网络波动和服务器重启的自动恢复。
- 移除了冗余的