From f036e0bc439a52d2c4cca5382ee655169973e062 Mon Sep 17 00:00:00 2001 From: Victor_Jay Date: Sun, 31 May 2026 12:14:55 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=90=AF=E5=8A=A8=E6=97=B6=20Redis=20?= =?UTF-8?q?=E7=A6=BB=E7=BA=BF=E5=90=8E=E7=BB=AD=E6=81=A2=E5=A4=8D=E5=90=8E?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=88=87=E5=9B=9E=20Redis?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 不再将 redisClient 置 nil,让 FallbackStore 接管全生命周期 - 启动时离线:FallbackStore 首次请求触发操作级降级,recoveryLoop 检测恢复后自动迁移切回 --- cmd/server/main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/server/main.go b/cmd/server/main.go index e319014..88152a3 100644 --- a/cmd/server/main.go +++ b/cmd/server/main.go @@ -70,13 +70,13 @@ func main() { r.Static("/uploads/avatars", "./storage/uploads/avatars") r.Static("/uploads/posts", "./storage/uploads/posts") - // Redis 客户端(可选,不可达时自动降级为内存存储) + // Redis 客户端(可选,不可达时 FallbackStore 自动降级,恢复后自动切回) var redisClient *redis.Client if cfg.Redis.Enabled { redisClient, err = common.NewRedisClient(cfg.Redis) if err != nil { - log.Printf("Redis 不可用,降级为内存存储: %v", err) - redisClient = nil // 强制走纯内存模式 + log.Printf("Redis 不可达,启动后首次请求将自动降级,后续恢复自动切回: %v", err) + // 不置 nil:go-redis 自带重连,FallbackStore 负责健康检测与恢复 } else { log.Printf("Redis 已连接 %s:%s (DB=%d)", cfg.Redis.Host, cfg.Redis.Port, cfg.Redis.DB) }