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

牽著老婆滿街逛

嚴(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>
            合欧美一区二区三区| 久久人人精品| 国产欧美亚洲日本| 亚洲高清二区| 国产日韩欧美不卡在线| 国产欧美日韩综合一区在线播放 | 国内精品久久久久久久影视麻豆| 国产精品手机在线| 国产丝袜一区二区| 在线日韩一区二区| 一本色道**综合亚洲精品蜜桃冫| 亚洲午夜视频| 老司机精品导航| 亚洲二区视频在线| 亚洲精选视频在线| 午夜精品一区二区三区在线视 | 欧美怡红院视频一区二区三区| 午夜在线电影亚洲一区| 久久一区二区视频| 欧美日韩亚洲成人| 亚洲免费观看在线观看| 日韩天堂av| 亚洲欧美精品suv| 女人色偷偷aa久久天堂| 亚洲精品一区二区三区福利| 午夜精品视频在线| 欧美激情亚洲视频| 国产日韩一区二区三区| 亚洲黄色av一区| 香蕉久久夜色精品| 免费观看亚洲视频大全| 亚洲深爱激情| 免费在线欧美黄色| 国产精品视频自拍| 夜夜爽av福利精品导航 | 国产一区深夜福利| 在线观看成人一级片| 亚洲伦伦在线| 久久久久看片| 一区二区高清视频| 欧美1区2区3区| 国产欧美一区二区白浆黑人| 亚洲欧洲视频| 久久天天狠狠| 久久精品在这里| 亚洲最黄网站| 91久久久亚洲精品| 欧美成人精品激情在线观看 | 国内成人精品视频| 亚洲区中文字幕| 久久久精品国产99久久精品芒果| 亚洲精品乱码久久久久久黑人 | 亚洲国产裸拍裸体视频在线观看乱了中文 | 国产欧美日韩一级| 在线视频你懂得一区二区三区| 麻豆精品在线视频| 欧美专区在线观看| 国产欧美日本| 欧美一区午夜精品| 亚洲一区图片| 国产精品男女猛烈高潮激情| 在线一区亚洲| 日韩一级视频免费观看在线| 欧美经典一区二区三区| 一本色道久久综合亚洲91 | 欧美亚洲三区| 国产欧美91| 久久国产精品久久久久久| 一本色道久久88亚洲综合88| 欧美色偷偷大香| 亚洲午夜激情网页| 亚洲一级黄色片| 国产一区二区av| 亚洲成色777777在线观看影院| 欧美成人国产一区二区| 日韩香蕉视频| 亚洲视频一二| 国内精品免费在线观看| 欧美成年人网站| 欧美久久久久久久久久| 亚洲午夜高清视频| 久久国产精品黑丝| 最新国产精品拍自在线播放| 亚洲毛片在线观看.| 国产精品美女久久久| 久久青草久久| 欧美日韩不卡一区| 久久久久久久久久久一区| 亚洲欧美日韩另类| 亚洲国产高清自拍| 国产精品久久久久久久7电影| 欧美中文日韩| 欧美激情一二三区| 久久精品欧洲| 欧美激情视频一区二区三区免费| 亚洲欧美一区二区原创| 久久伊人免费视频| 亚洲综合成人在线| 免费看成人av| 久久久999精品| 欧美日本一区二区三区| 久久综合精品国产一区二区三区| 欧美精品久久一区二区| 欧美一区免费| 欧美深夜影院| 欧美国产视频日韩| 国产亚洲人成a一在线v站| 亚洲精品激情| 在线日韩欧美视频| 久久国产精品毛片| 亚洲欧美日韩国产中文| 欧美福利视频网站| 免费在线看一区| 国产一区二区看久久| 亚洲天堂久久| 亚洲一区二区三区欧美| 欧美好骚综合网| 欧美chengren| 激情小说另类小说亚洲欧美| 一区二区三区回区在观看免费视频| 亚洲欧洲日韩女同| 开元免费观看欧美电视剧网站| 欧美一级淫片播放口| 欧美日韩一区二区精品| 亚洲国产精品一区在线观看不卡 | 亚洲大胆女人| 在线高清一区| 欧美一区二区视频免费观看 | 亚洲高清色综合| 亚洲国产精品激情在线观看| 久久久精品五月天| 久久伊人一区二区| 伊人激情综合| 老司机一区二区三区| 裸体女人亚洲精品一区| 国产亚洲一区二区三区| 亚洲欧美国产一区二区三区| 午夜久久久久久| 国产精品主播| 欧美制服丝袜第一页| 久久久久欧美精品| 国语自产精品视频在线看8查询8| 午夜欧美不卡精品aaaaa| 亚洲自拍偷拍网址| 国产日韩精品视频一区二区三区| 亚洲视频观看| 久久久久久久综合狠狠综合| 国产一区91| 免费观看在线综合| 亚洲欧洲精品一区| 亚洲深夜激情| 国产麻豆精品久久一二三| 伊人久久男人天堂| 亚洲一区二区3| 欧美一级淫片aaaaaaa视频| 国产欧美二区| 久久亚洲精选| 亚洲另类春色国产| 亚欧美中日韩视频| 激情欧美一区| 欧美激情精品久久久六区热门| 999在线观看精品免费不卡网站| 午夜精品久久久久99热蜜桃导演| 国产麻豆精品theporn| 久久久久高清| 99av国产精品欲麻豆| 久久精品国产一区二区三区| 欧美日韩一区在线观看视频| 亚洲在线电影| 亚洲激情电影中文字幕| 亚洲一区二区三区高清| 黄色成人免费观看| 欧美日韩综合视频网址| 久久久精品五月天| 国产精品99久久久久久久久| 女人香蕉久久**毛片精品| 欧美精品少妇一区二区三区| 亚洲欧美一区二区在线观看| 国产亚洲人成a一在线v站| 另类酷文…触手系列精品集v1小说| 亚洲国产日韩一区二区| 欧美亚洲专区| 亚洲精品美女久久7777777| 国产精品日韩在线一区| 老鸭窝91久久精品色噜噜导演| 在线中文字幕一区| 女同性一区二区三区人了人一| 亚洲一区久久久| 亚洲高清免费视频| 国产日韩av在线播放| 欧美日韩亚洲视频一区| 久久综合五月天婷婷伊人| 亚洲一区二区在线视频| 亚洲精品国产日韩| 蜜桃久久精品一区二区| 欧美在线观看一区二区| 99视频热这里只有精品免费| 在线成人激情视频| 国产一区视频在线观看免费| 国产精品日韩一区|