Golang操作Redis

5年以前  |  阅读数:287 次  |  编程语言:Golang 
package main

import "github.com/fzzbt/radix/redis"
import "time"
import "fmt"

func main() {
    // initialize
    conf := redis.DefaultConfig()
    client := redis.NewClient(conf)
    fmt.Println(conf)
    fmt.Println(client)

    // set & get
    setRep := client.Set("foo", "bar")
    if setRep.Err != nil {
        panic(setRep.Err)
    }
    fmt.Println(setRep)
    getRep := client.Get("foo")
    if getRep.Err != nil {
        panic(getRep.Err)
    }
    getStr, _ := getRep.Str()
    fmt.Println(getRep)
    fmt.Println(getStr)

    // variadic calls
    client.Set("foo1", "bar1")
    client.Set("foo2", "bar2")
    client.Set("foo3", "bar3")
    mgetRep := client.Mget("foo1", "foo2", "foo3")
    fmt.Println(mgetRep)

    // multi calls
    mcRep := client.MultiCall(func(mc *redis.MultiCall) {
        mc.Set("k1", "v1")
        mc.Get("k1")
    })
    if mcRep.Err != nil {
        panic(mcRep.Err)
    }
    mcVal, _ := mcRep.Elems[1].Str()
    fmt.Println(mcVal)

    // transactional calls
    tRep := client.Transaction(func(mc *redis.MultiCall) {
        mc.Set("k2", "v2")
        mc.Get("k2")
    })
    if tRep.Err != nil {
        panic(tRep.Err)
    }
    tStr, _ := tRep.Elems[1].Str()
    fmt.Println(tStr)

    // pubsub
    msgHdlr := func(msg *redis.Message) {
        fmt.Println(msg)
    }
    sub, subErr := client.Subscription(msgHdlr)
    if subErr != nil {
        panic(subErr)
    }
    defer sub.Close()
    sub.Subscribe("chan1", "chan2")
    sub.Psubscribe("chan*")
    client.Publish("chan1", "foo")
    sub.Unsubscribe("chan1")
    client.Publish("chan2", "bar")
    time.Sleep(time.Second)
}

SHELL面板:

# Start a Redis server.
$ redis-server

# In another terminal, run the redis client:
$ go get github.com/fzzbt/radix/redis
$ go run redis.go
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
贪吃蛇
文件下载
双位运算符
发送邮件
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
提取后缀名
年的日历图
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例