package cache import ( "context" "time" "juhe-factory/api/internal/config" "github.com/redis/go-redis/v9" ) func Open(cfg config.Config) (*redis.Client, error) { client := redis.NewClient(&redis.Options{ Addr: cfg.RedisAddress, Password: cfg.RedisPassword, DB: cfg.RedisDB, }) ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() if err := client.Ping(ctx).Err(); err != nil { client.Close() return nil, err } return client, nil }