gobox中redis操作

今天來說下使用gobox中redis操作相關(guān)

說明

本包的driver部分使用了redigo:https://github.com/garyburd/redigo

用法示例

package main

import (
    "github.com/goinbox/redis"

    "time"
    "fmt"
)

func main() {
    client := redis.NewClient(redis.NewConfig("127.0.0.1", "6379", "123"), nil)

    fmt.Println("====== testGeneral ======")
    testGeneral(client)

    fmt.Println("====== testAutoReconnect ======")
    testAutoReconnect(client)

    client.Free()

}

func testGeneral(client *redis.Client) {
    reply := client.Do("set", "c", "1")
    fmt.Println(reply.String())
    reply = client.Do("get", "c")
    fmt.Println(reply.Int())

    reply = client.DoWithoutLog("set", "d", "1")
    fmt.Println(reply.String())
    reply = client.DoWithoutLog("get", "d")
    fmt.Println(reply.Int())

    client.Send("set", "a", "a")
    client.Send("set", "b", "b")
    client.Send("get", "a")
    client.Send("get", "b")
    replies, errIndexes := client.ExecPipelining()
    fmt.Println(errIndexes)
    for _, reply := range replies {
        fmt.Println(reply.String())
        fmt.Println(reply.Err)
    }

    client.BeginTrans()
    client.Send("set", "a", "1")
    client.Send("set", "b", "2")
    client.Send("get", "a")
    client.Send("get", "b")
    replies, _ = client.ExecTrans()
    for _, reply := range replies {
        fmt.Println(reply.String())
        fmt.Println(reply.Err)
    }

}

func testAutoReconnect(client *redis.Client) {
    reply := client.Do("set", "a", "1")
    fmt.Println(reply.String())
    time.Sleep(time.Second * 4) //set redis-server timeout = 3
    reply = client.Do("get", "a")
    fmt.Println(reply.Err)
    fmt.Println(reply.Int())

    time.Sleep(time.Second * 4)

    client.Send("set", "a", "a")
    client.Send("set", "b", "b")
    client.Send("get", "a")
    client.Send("get", "b")
    replies, errIndexes := client.ExecPipelining()
    fmt.Println(errIndexes)
    for _, reply := range replies {
        fmt.Println(reply.String())
        fmt.Println(reply.Err)
    }

    time.Sleep(time.Second * 4)

    client.BeginTrans()
    client.Send("set", "a", "1")
    client.Send("set", "b", "2")
    client.Send("get", "a")
    client.Send("get", "b")
    replies, _ = client.ExecTrans()
    for _, reply := range replies {
        fmt.Println(reply.String())
        fmt.Println(reply.Err)
    }

    client.Free()
}

程序輸出:

====== testGeneral ======
OK <nil>
1 <nil>
OK <nil>
1 <nil>
[]
OK <nil>
<nil>
OK <nil>
<nil>
a <nil>
<nil>
b <nil>
<nil>
OK <nil>
<nil>
OK <nil>
<nil>
1 <nil>
<nil>
2 <nil>
<nil>
====== testAutoReconnect ======
OK <nil>
<nil>
1 <nil>
[]
OK <nil>
<nil>
OK <nil>
<nil>
a <nil>
<nil>
b <nil>
<nil>
OK <nil>
<nil>
OK <nil>
<nil>
1 <nil>
<nil>
2 <nil>
<nil>

歡迎大家使用,使用中有遇到問題隨時(shí)反饋,我們會(huì)盡快響應(yīng),謝謝!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,539評論 19 139
  • 世界上最美的距離不是你我相遇 而是你錯(cuò)過了我,我卻仍然等著你 世界上最美的距離不是你我相聚 而是你離開了我,我卻遠(yuǎn)...
    沐朵朵閱讀 2,225評論 1 2
  • 這個(gè)夜太黑了 黑的我什么也看不清 這個(gè)夜太靜了 靜的我能聽見空氣的響聲 這個(gè)夜太冷了 冷的我滴淚成冰 于是我做出了...
    頤和居士閱讀 161評論 0 0
  • 又是很忙的一天 又是忙到很晚的一天 馬上要開始一段艱難的旅行了 交通很可怕的斯里蘭卡讓力不從心 明早要去趕車,有時(shí)...
    咕咕喵喵喵閱讀 193評論 0 2
  • UIView*showView = [[UIViewalloc]initWithFrame:CGRectMake(...
    流沙3333閱讀 306評論 0 0

友情鏈接更多精彩內(nèi)容