尝试使用redis-golang驱动程序连接到redis时遇到问题。
这是我的docker-compose.yml
文件:
version: "3"
services:
driver:
build: ./API-Golang
command: go run app.go
volumes:
- ./API-Golang:/app
ports:
- "8080:8080"
depends_on:
- db
- redis
links :
- redis
- db
redis:
image: redis
container_name: redis
ports: ["6379:6379"]
db:
image: mongo:3.4.2
container_name: mongodb
ports : ["27017:27017"]
这是我尝试连接到redis的代码(API-Golang / database / allSystem.go):
redisConn := RedisHost{
Address: "localhost:6379",
Password: "",
DB: 0,
}
redisConnection, err := redisConn.Connect()
if err != nil {
panic(err)
}
我尝试将localhost
更改为redis
主机,但它仍然无法正常工作。这是错误:
driver_1 | panic: dial tcp [::1]:6379: getsockopt: connection refused
driver_1 |
driver_1 | goroutine 1 [running]:
driver_1 | github.com/Gujarats/API-Golang/database.SystemConnection(0x48)
driver_1 | /go/src/github.com/Gujarats/API-Golang/database/allSystem.go:32 +0x3d3
driver_1 | main.main()
driver_1 | /go/src/github.com/Gujarats/API-Golang/app.go:24 +0x34
driver_1 | exit status 2
知道什么是错的吗?
答案 0 :(得分:1)
使用depends_on时需要注意几点:
答案 1 :(得分:0)
这是愚蠢的我写depends_on
而不是为了解决编写这样的命令的问题:
depends_on:
- redis
- db
在此之前我先写了db
。并且不要忘记将主机更改为适当的名称,就像在docker-compose.yml文件中一样。在这种情况下,redis = redis
和mongodb = db
。
我忘了在app.go中我首先调用redis然后mongodb。