fix: Redis 降级机制优化:启动离线不崩溃 + 操作级即时降级 + 快速恢复
- 启动时 Redis 不可达不再 Fatal 退出,降级为内存模式继续运行 - FallbackStore 改为操作级降级:Redis 操作失败立即切换到内存,不依赖周期健康检查 - 新增 recoveryLoop:降级后每 5s 轮询尝试恢复,恢复后自动迁移内存会话回 Redis - 健康检查与清理解耦:检查 30s 间隔,恢复轮询 5s 间隔(原 300s) - 优化 go-redis 连接池参数(DialTimeout 1s, MaxRetries 1,减少故障阻塞时间)
This commit is contained in:
@ -51,7 +51,7 @@ func buildDepsCore(db *gorm.DB, cfg *config.Config, siteSettings *config.SiteSet
|
||||
if cfg.Redis.Enabled && redisClient != nil {
|
||||
// Redis 模式 + 自动降级保护
|
||||
redisStore := session.NewRedisStore(redisClient, idleTimeout, rememberTimeout)
|
||||
sessionStore = session.NewFallbackStore(redisStore, memStore, cleanupInterval)
|
||||
sessionStore = session.NewFallbackStore(redisStore, memStore)
|
||||
log.Println("[Router] 会话存储: Redis(带内存降级保护)")
|
||||
} else {
|
||||
// 纯内存模式
|
||||
|
||||
Reference in New Issue
Block a user