Redis
 sql >> Base de données >  >> NoSQL >> Redis

Redigo Redis Pool est-il vraiment censé être une variable globale ?

La seule autre solution que j'ai vue, par exemple dans "Passing Context to Interface Methods" est :

créer une struct qui accepte un contexte intégré et notre handler type, et nous satisfaisons toujours le http.Handler interface grâce à ServeHTTP .

Dans votre cas, la struct inclurait le pool , et le handler fonction.

type appContext struct {
    pool Pool
}

type appHandler struct {
    *appContext
    h func(a *appContext, w http.ResponseWriter, r *http.Request) (int, error)
}

func (ah appHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
   ...
}


func main() {
    context := &appContext{
        pool:    ...,
        // any other data
    }
}