feat: main.go 注入 Redis 到 CachedUserRepository,启用 refresh token 二级缓存
- 将 rdb 变量提升到外层作用域,供 session 和 auth 共用 - Redis 启用时用 CachedUserRepository 包装 userRepo - backfillTTL 使用 cfg.Auth.RefreshTTL 与 token 实际过期时间一致
This commit is contained in:
@@ -86,9 +86,10 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// L2: Redis(热数据分布式会话层)
|
// L2: Redis(热数据分布式会话层)
|
||||||
|
var rdb *redis.Client
|
||||||
var redisMgr *session.RedisManager
|
var redisMgr *session.RedisManager
|
||||||
if cfg.Storage.Redis.Enabled {
|
if cfg.Storage.Redis.Enabled {
|
||||||
rdb := redis.NewClient(&redis.Options{
|
rdb = redis.NewClient(&redis.Options{
|
||||||
Addr: cfg.Redis.Addr,
|
Addr: cfg.Redis.Addr,
|
||||||
Password: cfg.Redis.Password,
|
Password: cfg.Redis.Password,
|
||||||
DB: cfg.Redis.DB,
|
DB: cfg.Redis.DB,
|
||||||
@@ -102,9 +103,12 @@ func main() {
|
|||||||
time.Duration(cfg.Session.TTL)*time.Minute,
|
time.Duration(cfg.Session.TTL)*time.Minute,
|
||||||
cfg.Session.MaxHistory,
|
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",
|
logger.Log.Infow("L2 Redis storage initialized",
|
||||||
"addr", cfg.Redis.Addr,
|
"addr", cfg.Redis.Addr,
|
||||||
"db", cfg.Redis.DB)
|
"db", cfg.Redis.DB,
|
||||||
|
"cached_user_repo", true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 初始化 Session Manager(三级存储)
|
// 初始化 Session Manager(三级存储)
|
||||||
|
|||||||
Reference in New Issue
Block a user