连接docker里的redis会失败

来源:6-4 编码实战:实现分块上传接口

TedZheng

2021-01-02

我把redis装在docker里并且做了端口映射,运行过程中发现值始终没办法设置进redis中,自己写了一个demo测试了一下,发现有这个报错

  • redis连接测试代码
// redis连接测试代码
func testRedis() bool {
	// e.g. REDIS_PORT = tcp://172.17.0.89:6379
	conn, err := redis.DialTimeout("tcp", "127.0.0.1:6379", 0, 1*time.Second, 1*time.Second)
	if err != nil {
		fmt.Println(err)
		return false
	}
	defer conn.Close()

	size, err := conn.Do("DBSIZE")
	if err != nil {
		fmt.Println(err)
		return false
	}
	fmt.Printf("DB size is %d \n", size)

	_, err = conn.Do("SET", "user:user0", 123)
	_, err = conn.Do("SET", "user:user1", 456)
	_, err = conn.Do("APPEND", "user:user0", 87)

	user0, err := redis.Int(conn.Do("GET", "user:user0"))
	user1, err := redis.Int(conn.Do("GET", "user:user1"))

	fmt.Printf("user0 is %d , user1 is %d \n", user0, user1)
	return true
}

func main() {
	fmt.Println(time.Now(), "[Redis test start]")

	if testRedis() {
		fmt.Println("[Redis test ok]")
	} else {
		fmt.Println("[Redis test failed]")
	}
}
  • 报错部分
    图片描述
写回答

1回答

xiaomo

2021-01-07

同学你好,docker里redis容器的ip是什么呢?看起来是127.0.0.1:6379中的127.0.0.1的原因,把这个ip换成docker网络下容器的ip看看。

0
2
xiaomo
回复
TedZheng
强~~
2021-01-22
共2条回复

Go实战仿百度云盘-实现企业级分布式云存储系统

紧随“云时代”技术潮流,分布式云存储系统,做第一代云程序员

1077 学习 · 494 问题

查看课程