diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aff5a3..ca41bdd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # CHANGELOG - redis +## v1.5.10 (2026-06-22) +- **依赖更新**: + - 升级依赖 `id` 至 `v1.5.6`。 + +## v1.5.9 (2026-06-21) +- **依赖更新**: + - 升级依赖 `id` 至 `v1.5.5`(同步修复旧版本 ID 未打乱的 Bug)。 + ## v1.5.8 (2026-06-21) - **安全模式优化**: `checkSafe` 从写命令全量拦截改为仅拦截危险命令(`FLUSHDB`/`FLUSHALL`),常规写操作(HSET/HDEL/SET/DEL 等)在安全模式下不再受限。 - **Result.Bool() 修复**: 增加 `"OK"` 响应判断(Redis RESP Simple String),解决 SET/SETEX 等命令永远返回 `false` 的问题。 diff --git a/TEST.md b/TEST.md index 81e35e7..fe781e1 100644 --- a/TEST.md +++ b/TEST.md @@ -13,12 +13,12 @@ - Fixed `Start()` and `Stop()` logic to prevent redundant goroutines and ensure clean exit. ## Benchmarks -- **BenchmarkGetSet**: ~80,000 ns/op (Simple GET/SET loop) -- **BenchmarkIDMaker**: ~2,300 ns/op (High-performance sequence generation) +- **BenchmarkGetSet**: **282,638 ns/op** (Simple GET/SET loop) +- **BenchmarkIDMaker**: **2,672 ns/op** (High-performance sequence generation) ## 🛡️ 鲁棒性防御 (Robustness) - **安全沙箱拦截**:在 `SafeMode` 下,拦截危险命令(FLUSHDB/FLUSHALL),常规写操作(HSET/HDEL/SET/DEL 等)可正常执行。 - **JS 错误调用栈**:JS 桥接层改用具名导出并使用 `jsmod.MakeError` 包裹错误(包括 Do 返回的 Result.Error 字段),确保 JS 抛出异常时携带准确的 Go 运行时堆栈。 -> Date: 2026-06-21 +> Date: 2026-06-22 > Environment: Darwin / Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz diff --git a/go.mod b/go.mod index ecab9be..ac41b9d 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( apigo.cc/go/config v1.5.3 apigo.cc/go/crypto v1.5.3 apigo.cc/go/encoding v1.5.4 - apigo.cc/go/id v1.5.5 + apigo.cc/go/id v1.5.6 apigo.cc/go/jsmod v1.5.3 apigo.cc/go/log v1.5.8 apigo.cc/go/safe v1.5.2 diff --git a/subscribe_test.go b/subscribe_test.go index d4e963c..85de3c8 100644 --- a/subscribe_test.go +++ b/subscribe_test.go @@ -19,6 +19,7 @@ func TestSub(t *testing.T) { rd.Subscribe("aaa", nil, func(s []byte) { aaa.Store(string(s)) }) + time.Sleep(50 * time.Millisecond) // 等待 Redis 订阅注册完成 rd.PUBLISH("aaa", "111") time.Sleep(100 * time.Millisecond) @@ -31,6 +32,7 @@ func TestSub(t *testing.T) { rd.Subscribe("bbb", nil, func(s []byte) { bbb.Store(string(s)) }) + time.Sleep(50 * time.Millisecond) // 等待 Redis 订阅注册完成 rd.PUBLISH("bbb", "222") time.Sleep(100 * time.Millisecond)