青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

牽著老婆滿街逛

嚴(yán)以律己,寬以待人. 三思而后行.
GMail/GTalk: yanglinbo#google.com;
MSN/Email: tx7do#yahoo.com.cn;
QQ: 3 0 3 3 9 6 9 2 0 .

go使用redis

Go語言的Redis客戶端,官方推薦了兩個客戶端:redigo和radix.v2
安裝之:
go get github.com/mediocregopher/radix.v2
go get github.com/garyburd/redigo/redis

test_redigo.go
package main

import (
    "fmt"
    "github.com/garyburd/redigo/redis"
    "log"
)

// test common
func testCommonOperate() {
    // connect redis server
    c, err := redis.Dial("tcp""127.0.0.1:6379")
    if err != nil {
        fmt.Println(err)
        log.Fatal("connect redis-server error: ", err)
        return
    }
    defer c.Close()

    // SET
    v, err := c.Do("SET""name""red")
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(v)

    // GET
    v, err = redis.String(c.Do("GET""name"))
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(v)

    // LPUSH
    c.Do("lpush""redlist""qqq")
    c.Do("lpush""redlist""www")
    c.Do("lpush""redlist""eee")

    // LRANGE
    values, _ := redis.Values(c.Do("lrange""redlist""0""100"))
    for _, v := range values {
        fmt.Println(string(v.([]byte)))
    }

    // Scan
    var v1 string
    redis.Scan(values, &v1)
    fmt.Println(v1)

    // piple line
    c.Send("SET""name""red")
    c.Send("GET""name")
    c.Flush()
    c.Receive()
    c.Receive()
}

func subscribe() {
    c, err := redis.Dial("tcp""127.0.0.1:6379")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer c.Close()

    psc := redis.PubSubConn{c}
    psc.Subscribe("redChatRoom")
    for {
        switch v := psc.Receive().(type) {
        case redis.Message:
            fmt.Printf("%s: message: %s\n", v.Channel, v.Data)
        case redis.Subscription:
            fmt.Printf("%s: %s %d\n", v.Channel, v.Kind, v.Count)
        case error:
            fmt.Println(v)
            return
        }
    }
}

func testSubscribe() {
    go subscribe()
    go subscribe()
    go subscribe()
    go subscribe()
    go subscribe()

    c, err := redis.Dial("tcp""127.0.0.1:6379")
    if err != nil {
        fmt.Println(err)
        return
    }
    defer c.Close()

    for {
        var s string
        fmt.Scanln(&s)
        _, err := c.Do("PUBLISH""redChatRoom", s)
        if err != nil {
            fmt.Println("pub err: ", err)
            return
        }
    }
}

func main() {
    testCommonOperate()
    //testSubscribe()
}


test_radixv2.go
package main

import (
    "fmt"
    "github.com/mediocregopher/radix.v2/redis"
    "log"
    "strconv"
)

func test1() {
    conn, err := redis.Dial("tcp""localhost:6379")
    if err != nil {
        log.Fatal(err)
        return
    }
    defer conn.Close()

    resp := conn.Cmd("HMSET""album:1""title""Electric Ladyland""artist""Jimi Hendrix""price", 4.95, "likes", 8)
    if resp.Err != nil {
        log.Fatal(resp.Err)
    }

    fmt.Println("Electric Ladyland added!")
}

func test2() {
    conn, err := redis.Dial("tcp""localhost:6379")
    if err != nil {
        log.Fatal(err)
    }
    defer conn.Close()

    title, err := conn.Cmd("HGET""album:1""title").Str()
    if err != nil {
        log.Fatal(err)
    }

    artist, err := conn.Cmd("HGET""album:1""artist").Str()
    if err != nil {
        log.Fatal(err)
    }

    price, err := conn.Cmd("HGET""album:1""price").Float64()
    if err != nil {
        log.Fatal(err)
    }

    likes, err := conn.Cmd("HGET""album:1""likes").Int()
    if err != nil {
        log.Fatal(err)
    }

    fmt.Printf("%s by %s: £%.2f [%d likes]\n", title, artist, price, likes)
}

type Album struct {
    Title  string
    Artist string
    Price  float64
    Likes  int
}

func populateAlbum(reply map[string]string) (*Album, error) {
    var err error
    ab := new(Album)
    ab.Title = reply["title"]
    ab.Artist = reply["artist"]
    ab.Price, err = strconv.ParseFloat(reply["price"], 64)
    if err != nil {
        return nil, err
    }

    ab.Likes, err = strconv.Atoi(reply["likes"])
    if err != nil {
        return nil, err
    }
    return ab, nil
}

func test3() {
    conn, err := redis.Dial("tcp""localhost:6379")
    if err != nil {
        log.Fatal(err)
    }
    defer conn.Close()

    reply, err := conn.Cmd("HGETALL""album:1").Map()
    if err != nil {
        log.Fatal(err)
    }

    ab, err := populateAlbum(reply)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println(ab)
}

func main() {
    test1()
    //test2()
    //test3()
}


參考資料
http://io.upyun.com/2016/01/28/how-to-use-redis-pool-in-go/
http://studygolang.com/articles/4542
https://godoc.org/github.com/garyburd/redigo/redis
https://godoc.org/github.com/mediocregopher/radix.v2
http://www.alexedwards.net/blog/working-with-redis

源代碼下載
/Files/tx7do/test_redis_go.zip

posted on 2016-12-26 15:01 楊粼波 閱讀(852) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發(fā)表評論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            韩国欧美国产1区| 国产精品成人在线| 精品69视频一区二区三区| 欧美淫片网站| 久久国产黑丝| 亚洲国产专区校园欧美| 亚洲精品欧洲| 国产精品腿扒开做爽爽爽挤奶网站| 午夜在线a亚洲v天堂网2018| 午夜精品久久久久久久白皮肤| 国产亚洲精品aa| 欧美插天视频在线播放| 欧美精品色综合| 亚洲欧美国产制服动漫| 久久国产精品电影| 99国产精品久久久久久久久久 | 亚洲欧美不卡| 樱桃成人精品视频在线播放| 亚洲国产精品成人久久综合一区| 欧美日韩不卡合集视频| 久久国产精品久久w女人spa| 蜜桃av一区二区| 性8sex亚洲区入口| 欧美承认网站| 欧美在线综合视频| 欧美激情一区三区| 久久久无码精品亚洲日韩按摩| 欧美v国产在线一区二区三区| 亚洲男人第一av网站| 久久夜色精品国产噜噜av| 午夜精品久久久久影视| 欧美不卡激情三级在线观看| 欧美在线free| 欧美成人亚洲成人| 亚洲一区二区网站| 乱中年女人伦av一区二区| 亚洲免费视频在线观看| 免费在线看成人av| 久久嫩草精品久久久久| 欧美调教视频| 亚洲人成绝费网站色www| 韩国女主播一区| 亚洲影院高清在线| 一区二区三区欧美在线| 久久一区二区三区四区| 久久av在线看| 国产精品美女视频网站| 亚洲精品中文在线| 91久久久久久久久| 久久综合久久综合九色| 久久久免费av| 国产一区二区三区成人欧美日韩在线观看 | 亚洲开发第一视频在线播放| 狠狠色狠狠色综合| 性欧美办公室18xxxxhd| 亚洲一区二区在线看| 欧美激情精品久久久久久大尺度 | 欧美一区二区三区精品| 欧美日韩精品欧美日韩精品| 欧美大学生性色视频| 雨宫琴音一区二区在线| 久久久精品国产一区二区三区| 久久激情视频| 国产亚洲日本欧美韩国| 午夜精品久久久久久久蜜桃app | 欧美日韩国产综合新一区| 欧美大片在线看| 亚洲精品国产日韩| 欧美精品三级| 一区二区三区精密机械公司| 亚洲性线免费观看视频成熟| 国产精品国产一区二区| 一本久道久久综合中文字幕| 亚洲视频999| 国产精品视频免费观看www| 亚洲男人的天堂在线aⅴ视频| 亚洲欧美日韩一区二区三区在线观看| 欧美日韩中文| 亚洲欧美国产va在线影院| 欧美在线日韩| 亚洲国产精品女人久久久| 欧美成人国产一区二区| 99ri日韩精品视频| 欧美一区日本一区韩国一区| 狠狠色狠狠色综合日日tαg| 麻豆国产精品777777在线| 最新高清无码专区| 亚洲欧美日韩第一区 | 欧美激情影音先锋| 一区二区三区四区在线| 久久久久久久久一区二区| 亚洲韩国一区二区三区| 欧美色网在线| 久久精品国产免费| 亚洲精品小视频在线观看| 欧美一级片久久久久久久| 1769国产精品| 国产精品卡一卡二| 免费av成人在线| 亚洲女爱视频在线| 亚洲国产导航| 欧美一区二区三区在线观看| 亚洲国产日韩欧美在线99| 国产精品草莓在线免费观看| 久久久久女教师免费一区| 亚洲精品孕妇| 免费不卡在线观看av| 亚洲视频第一页| 伊人久久婷婷| 国产精品爽爽ⅴa在线观看| 欧美777四色影视在线| 亚洲欧美在线免费| 亚洲黄色性网站| 欧美日韩国产在线观看| 久久久久久自在自线| 中日韩美女免费视频网站在线观看| 国产精品视频自拍| 欧美激情2020午夜免费观看| 久久国产福利| 亚洲欧美在线高清| 一区二区三区四区五区视频| 欧美韩日一区二区三区| 久久国内精品视频| 亚洲综合电影| 中国日韩欧美久久久久久久久| 在线观看国产成人av片| 国产午夜一区二区三区| 国产精品一区二区黑丝| 欧美日韩免费一区二区三区| 欧美xx69| 欧美成人一区二免费视频软件| 久久国产视频网| 欧美在线免费播放| 亚洲欧美日韩另类| 亚洲欧美文学| 亚洲欧美视频在线观看| 亚洲与欧洲av电影| 亚洲欧美成人精品| 亚洲欧美www| 午夜精品美女久久久久av福利| 亚洲午夜久久久久久久久电影院| a4yy欧美一区二区三区| 一本色道久久综合亚洲精品高清| 亚洲另类一区二区| 亚洲视频中文| 亚洲欧洲av一区二区| 欧美一区二区精品久久911| 欧美一区二区三区免费看| 欧美一区二区女人| 久久免费视频网| 巨胸喷奶水www久久久免费动漫| 久久精品男女| 蜜桃av综合| 欧美日韩在线视频一区| 国产精品久线观看视频| 国产深夜精品| 亚洲黄色免费网站| 中文精品在线| 久久久国产精彩视频美女艺术照福利| 久久精品女人| 亚洲成人中文| 夜夜躁日日躁狠狠久久88av| 亚洲永久在线观看| 久久人人爽国产| 欧美精品国产一区| 国产精品欧美经典| 亚洲大胆女人| 亚洲一区二区三区中文字幕| 欧美专区18| 亚洲福利免费| 在线一区日本视频| 久久久免费观看视频| 欧美日本一区二区高清播放视频| 国产精品视频导航| 18成人免费观看视频| 亚洲图片欧美一区| 久久一区二区三区四区| 日韩午夜免费视频| 久久精品一本| 欧美视频第二页| 在线观看欧美黄色| 午夜国产精品影院在线观看| 免费在线日韩av| 亚洲午夜羞羞片| 美女黄色成人网| 国产精品一区二区在线观看不卡| 亚洲国产高清在线观看视频| 亚洲自拍高清| 亚洲国产经典视频| 久久久久9999亚洲精品| 国产精品久久久久国产精品日日| 亚洲第一精品夜夜躁人人爽| 亚洲综合视频网| 欧美激情二区三区| 久久爱另类一区二区小说| 欧美性生交xxxxx久久久| 亚洲第一在线视频| 国产精品久久久久91| 国产日韩欧美二区| 一区二区免费在线播放|