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

牽著老婆滿街逛

嚴以律己,寬以待人. 三思而后行.
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 楊粼波 閱讀(854) 評論(0)  編輯 收藏 引用


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   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| 国产午夜亚洲精品羞羞网站| 狠狠网亚洲精品| 99人久久精品视频最新地址| 亚洲一区亚洲| 久久精品一区二区三区不卡牛牛| 久久综合久久综合九色| 欧美国产综合一区二区| 99综合在线| 欧美一区二区三区电影在线观看| 久久先锋影音| 欧美色网在线| 在线播放日韩专区| 国产精品99久久久久久白浆小说| 欧美一二三区精品| 欧美激情乱人伦| 亚洲欧美精品在线观看| 久久只精品国产| 国产精品黄页免费高清在线观看| 狠狠色综合色综合网络| 中日韩高清电影网| 鲁大师影院一区二区三区| 亚洲精品久久视频| 亚洲欧美在线aaa| 欧美1区2区视频| 国产日韩欧美精品| 一区二区三区高清在线| 久久蜜臀精品av| 亚洲视频一区二区免费在线观看| 久久久亚洲影院你懂的| 国产精品久久久久久久久久直播 | 亚洲免费观看视频| 久久一区二区三区四区五区| 久久综合中文字幕| 一本久久综合亚洲鲁鲁| 欧美www在线| 国内精品一区二区| 欧美在线不卡| 亚洲天堂av在线免费观看| 农村妇女精品| 亚洲高清不卡在线观看| 久久久精品国产一区二区三区| 99综合电影在线视频| 欧美激情视频免费观看| 亚洲激情一区| 欧美激情bt| 久久在线精品| 亚洲国产高清视频| 欧美第十八页| 欧美不卡视频一区| 亚洲精品网站在线播放gif| 欧美黄在线观看| 牛牛影视久久网| 99re热这里只有精品免费视频| 亚洲国产成人精品久久| 女生裸体视频一区二区三区| 亚洲精品1234| 亚洲激情电影在线| 欧美日韩另类视频| 亚洲网站在线播放| 亚洲一区二区不卡免费| 国产伦精品一区二区三区免费| 欧美一区网站| 久久精品官网| 亚洲国产成人tv| 亚洲三级影片| 国产精品区免费视频| 欧美在线不卡视频| 久久夜色精品国产欧美乱极品| 亚洲国产1区| 亚洲精品一区久久久久久| 国产精品电影网站| 久久综合色天天久久综合图片| 狂野欧美激情性xxxx欧美| 亚洲乱码国产乱码精品精可以看| 亚洲精品一二三| 国产欧美日本一区二区三区| 免费不卡中文字幕视频| 欧美日韩精品是欧美日韩精品| 亚洲欧美在线一区| 久久综合99re88久久爱| 亚洲视频在线观看免费| 亚洲欧美影音先锋| 亚洲精品一区在线观看香蕉| 一区二区三区国产盗摄| 狠狠色丁香婷婷综合久久片| 最新高清无码专区| 国产一区二区三区成人欧美日韩在线观看 | 欧美一区视频| 99国产精品国产精品毛片| 亚洲欧美国产77777| 91久久国产综合久久| 亚洲在线免费视频| 亚洲免费av网站| 久久免费偷拍视频| 欧美午夜精品久久久久久人妖| 久久久亚洲成人| 欧美精品一区二区三区视频| 久久精品女人| 欧美日韩在线一区| 欧美激情1区2区| 国内精品久久久久影院色| 中国女人久久久| 日韩视频一区二区三区在线播放| 欧美中文字幕在线| 午夜视频久久久| 欧美日韩国产一级片| 免费亚洲视频| 狠狠爱成人网| 校园春色综合网| 亚洲欧美日韩第一区| 欧美成人免费观看| 免费一级欧美片在线观看| 国产午夜精品久久久久久久| 一区二区三区四区五区在线| 亚洲精品在线视频观看| 久久亚洲国产精品日日av夜夜| 久久久99国产精品免费| 国产伦精品一区二区三区四区免费| 亚洲狼人精品一区二区三区| 亚洲国产日韩欧美在线图片 | 亚洲免费播放| 日韩亚洲一区在线播放| 欧美v国产在线一区二区三区| 久久久噜噜噜久久人人看| 国产精品亚发布| 亚洲免费中文| 欧美呦呦网站| 国产欧美午夜| 欧美中文在线观看国产| 久久精品日产第一区二区| 国产乱码精品一区二区三区五月婷 | 在线不卡欧美| 久久夜色精品国产欧美乱极品| 久久一区二区三区四区五区| 国产综合自拍| 久久久免费av| 亚洲国产天堂久久综合网| 日韩亚洲欧美一区| 国产精品久久久| 午夜欧美精品久久久久久久| 久久久噜噜噜久久中文字免| 永久免费精品影视网站| 久热成人在线视频| 最新日韩中文字幕| 亚洲一级二级| 国产日韩欧美亚洲一区| 久久久午夜视频| 亚洲人成高清| 欧美亚洲视频在线观看| 激情久久五月天| 欧美激情精品| 亚洲在线不卡| 欧美成人有码| 亚洲校园激情| 精品69视频一区二区三区| 亚洲免费观看| 香蕉成人伊视频在线观看| 一色屋精品视频在线观看网站| 欧美**人妖| 亚洲男女自偷自拍| 亚洲国内在线| 欧美主播一区二区三区美女 久久精品人| 国产亚洲精品久久久久动| 男人天堂欧美日韩| 午夜国产不卡在线观看视频| 欧美激情视频给我| 久久国产精品亚洲va麻豆| 亚洲精选视频免费看| 国产精品乱人伦中文| 久久综合中文字幕| 先锋亚洲精品| av成人手机在线| 欧美aa国产视频| 午夜在线成人av| 一本色道**综合亚洲精品蜜桃冫| 国产欧美视频一区二区三区| 欧美精品videossex性护士| 欧美中文字幕视频| 亚洲一区一卡| 99国内精品久久| 欧美福利一区| 久久久美女艺术照精彩视频福利播放| 一本色道**综合亚洲精品蜜桃冫| 一区二区三区在线视频免费观看 | 欧美一区日本一区韩国一区| 亚洲三级免费电影| 激情成人av| 好看的亚洲午夜视频在线| 国产精品日韩一区二区三区| 欧美金8天国|