fix: 启动时 Redis 离线后续恢复后自动切回 Redis
- 不再将 redisClient 置 nil,让 FallbackStore 接管全生命周期 - 启动时离线:FallbackStore 首次请求触发操作级降级,recoveryLoop 检测恢复后自动迁移切回
This commit is contained in:
@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user