From ea70d2efc691ef1f9a8e89dd1033b3dc9cf2bdb3 Mon Sep 17 00:00:00 2001 From: hhs <386998068@qq.com> Date: Sat, 20 Jun 2026 14:54:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20main.go=20=E6=B3=A8=E5=85=A5=20Redis=20?= =?UTF-8?q?=E5=88=B0=20CachedUserRepository=EF=BC=8C=E5=90=AF=E7=94=A8=20r?= =?UTF-8?q?efresh=20token=20=E4=BA=8C=E7=BA=A7=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 rdb 变量提升到外层作用域,供 session 和 auth 共用 - Redis 启用时用 CachedUserRepository 包装 userRepo - backfillTTL 使用 cfg.Auth.RefreshTTL 与 token 实际过期时间一致 --- backend/cmd/server/main.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/cmd/server/main.go b/backend/cmd/server/main.go index 3efbd6d..84bd165 100644 --- a/backend/cmd/server/main.go +++ b/backend/cmd/server/main.go @@ -86,9 +86,10 @@ func main() { } // L2: Redis(热数据分布式会话层) + var rdb *redis.Client var redisMgr *session.RedisManager if cfg.Storage.Redis.Enabled { - rdb := redis.NewClient(&redis.Options{ + rdb = redis.NewClient(&redis.Options{ Addr: cfg.Redis.Addr, Password: cfg.Redis.Password, DB: cfg.Redis.DB, @@ -102,9 +103,12 @@ func main() { time.Duration(cfg.Session.TTL)*time.Minute, cfg.Session.MaxHistory, ) + // 包装 userRepo 为带 Redis 缓存的版本(refresh token 二级缓存) + userRepo = store.NewCachedUserRepository(userRepo, rdb, time.Duration(cfg.Auth.RefreshTTL)*time.Minute) logger.Log.Infow("L2 Redis storage initialized", "addr", cfg.Redis.Addr, - "db", cfg.Redis.DB) + "db", cfg.Redis.DB, + "cached_user_repo", true) } // 初始化 Session Manager(三级存储)