[筆記]使用Go語言Redigo包在Docker容器內串連Redis容器的方法

來源:互聯網
上載者:User

標籤:

Docker容器之間的串連可以帶來不少方便,下面記錄下如何在自己容器內通過環境變數串連與之串連的Redis容器的方法。

先起一個Redis的Docker容器,命名為 redis,再起一個自己的Docker容器,使用"--link redis:redis"方式與redis容器串連。

在自己的容器內部,會有對應的環境變數,其中這裡用的就是 REDIS_PORT = tcp://172.17.0.89:6379。

將其分拆為 tcp 和 172.17.0.89:6379,作為參數傳入redigo的Dial函數即可,如此可不必顯式的寫IP和連接埠地址。

順便說一句,redigo是Go語言的Redis用戶端實現。

參考代碼如下:

package mainimport (    "fmt"    "github.com/garyburd/redigo/redis"    "os"    "strings"    "time")func testRedis() bool {    // e.g. REDIS_PORT = tcp://172.17.0.89:6379    fmt.Println("REDIS_PORT", os.Getenv("REDIS_PORT"))    addr := strings.Split(os.Getenv("REDIS_PORT"), "://")    conn, err := redis.DialTimeout(addr[0], addr[1], 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]")    }}

 

如果串連成功,結果如下:

2015-03-12 12:16:44.796537101 +0000 UTC [Redis test start]REDIS_PORT tcp://172.17.0.89:6379DB size is 2 user0 is 12387 , user1 is 456 [Redis test ok]

 

[筆記]使用Go語言Redigo包在Docker容器內串連Redis容器的方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.