From c059b434d276aa3a57bbf3b8f651260c0de73c3a Mon Sep 17 00:00:00 2001 From: AI Engineer Date: Mon, 22 Jun 2026 18:12:00 +0800 Subject: [PATCH] =?UTF-8?q?fix(discover):=20=E5=B0=86=E5=BA=9F=E5=BC=83?= =?UTF-8?q?=E7=9A=84=20SETEX=20=E6=9B=BF=E6=8D=A2=E4=B8=BA=20SET=20EX=20?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=EF=BC=88by=20AI=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: deepseek-v4-pro[1m] --- CHANGELOG.md | 3 +++ Discover.go | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 78077d6..e8d9eee 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # CHANGELOG +## v1.5.5 (2026-06-22) +- **Redis 兼容**: 将已废弃的 `SETEX` 命令替换为 `SET key value EX seconds` 格式。 + ## v1.5.3 (2026-06-21) - **错误堆栈重构**: - 重构 `js_export.go`,将匿名函数改写为包级具名函数。 diff --git a/Discover.go b/Discover.go index 36200db..e34e69b 100644 --- a/Discover.go +++ b/Discover.go @@ -114,7 +114,7 @@ func Start(registry, app, addr string, logger *log.Logger, confs ...Config) *Dis // 注册节点 if d.serverRedisPool.Do("HSET", d.app, addr, d.config.Weight).Error == nil { - d.serverRedisPool.Do("SETEX", d.app+"_"+addr, 10, "1") + d.serverRedisPool.Do("SET", d.app+"_"+addr, "1", "EX", 10) d.logInfo("registered") d.serverRedisPool.PUBLISH("CH_"+d.app, fmt.Sprintf("%s %d", addr, d.config.Weight)) d.daemonRunning.Store(true) @@ -198,11 +198,11 @@ func (d *Discoverer) daemon() { if !d.serverRedisPool.Do("HEXISTS", d.app, d.myAddr).Bool() { d.logInfo("lost app registered info, re-registering") if d.serverRedisPool.Do("HSET", d.app, d.myAddr, d.config.Weight).Error == nil { - d.serverRedisPool.Do("SETEX", d.app+"_"+d.myAddr, 10, "1") + d.serverRedisPool.Do("SET", d.app+"_"+d.myAddr, "1", "EX", 10) d.serverRedisPool.PUBLISH("CH_"+d.app, fmt.Sprintf("%s %d", d.myAddr, d.config.Weight)) } } else { - d.serverRedisPool.Do("SETEX", d.app+"_"+d.myAddr, 10, "1") + d.serverRedisPool.Do("SET", d.app+"_"+d.myAddr, "1", "EX", 10) } } case <-d.daemonStopSignal: