dial tcp [::1]:6397: connectex: No connection coul

2019-09-01 04:16发布

I am writing a simple go web application with redis (trying out redis for the first time) on windows. I'm using the go-redis package to connect to redis.

package main

import (
    "fmt"
    "net/http"
    "text/template"

    "github.com/go-redis/redis"
    "github.com/gorilla/mux"
)

var client *redis.Client
var tmpl *template.Template

func init() {
    client = redis.NewClient(&redis.Options{
        Addr:     "localhost:6397",
        Password: "",
        DB:       0,
    })
    tmpl = template.Must(template.ParseGlob("./templates/*.gohtml"))
    pong, err := client.Ping().Result()
    fmt.Println(pong, err)
}

func main() {
    router := mux.NewRouter()
    router.HandleFunc("/", indexHandler).Methods("GET")
    http.Handle("/", router)
    http.ListenAndServe(":1234", nil)
}

func indexHandler(w http.ResponseWriter, r *http.Request) {
    comments, err := client.LRange("comments", 0, 10).Result()
    check(err)
    tmpl.ExecuteTemplate(w, "index.gohtml", comments)
}

func check(err error) {
    if err != nil {
        fmt.Println(err)
        return
    }
}

But when I run this code, I get "dial tcp [::1]:6397: connectex: No connection could be made because the target machine actively refused it."

The only answer that I could find was to "start the redis server". My redis server is up and running (Checked it by using the "PING" command in redis client).I have also tried running it as administrator, but no luck. Screenshot attached

Any help would be appreciated. Thanks in advanced!

标签: windows go redis
1条回答
Melony?
2楼-- · 2019-09-01 04:27

This is happening most likely because of the Redis server is running on port 6379 (that is the default port for Redis server) but you are trying to connect to the port 6397.

Change the Server Address to:

Addr: "localhost:6379"

From Addr: "localhost:6397"

And that should solve your problem.

查看更多
登录 后发表回答