zoukankan      html  css  js  c++  java
  • golang中使用Redis

    一.golang中安装Redis

    github地址:https://github.com/garyburd/redigo

    文档地址:http://godoc.org/github.com/garyburd/redigo/redis

    安装:

    go get github.com/garyburd/redigo/redis

    二.简单连接Redis

    conn

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:6379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
    
        defer c.Close()
    }

    hset

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:6379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
    
        defer c.Close()
        _, err = c.Do("HSet", "books", "abc", 100)
        if err != nil {
            fmt.Println(err)
            return
        }
    
        r, err := redis.Int(c.Do("HGet", "books", "abc"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
    
        fmt.Println(r)
    }

    list

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:6379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
    
        defer c.Close()
        _, err = c.Do("lpush", "book_list", "abc", "ceg", 300)
        if err != nil {
            fmt.Println(err)
            return
        }
    
        r, err := redis.String(c.Do("lpop", "book_list"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
    
        fmt.Println(r)
    }

    set

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        var p *int
        var a int
        p = &a
        *p = 0
    
        c, err := redis.Dial("tcp", "localhost:6379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
    
        defer c.Close()
        _, err = c.Do("Set", "abc", 100)
        if err != nil {
            fmt.Println(err)
            return
        }
    
        r, err := redis.Int(c.Do("Get", "abc"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
    
        fmt.Println(r)
    }

    batch_set

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:6379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
    
        defer c.Close()
        _, err = c.Do("MSet", "abc", 100, "efg", 300)
        if err != nil {
            fmt.Println(err)
            return
        }
    
        r, err := redis.Ints(c.Do("MGet", "abc", "efg"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
    
        for _, v := range r {
            fmt.Println(v)
        }
    }

    过期设置

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
    )
    
    func main() {
        c, err := redis.Dial("tcp", "localhost:6379")
        if err != nil {
            fmt.Println("conn redis failed,", err)
            return
        }
    
        defer c.Close()
        _, err = c.Do("expire", "abc", 10)
        if err != nil {
            fmt.Println(err)
            return
        }
    }

    连接池

    package main
    
    import (
        "fmt"
    
        "github.com/garyburd/redigo/redis"
    )
    
    var pool *redis.Pool
    
    func init() {
        pool = &redis.Pool{
            MaxIdle:     16,
            MaxActive:   0,
            IdleTimeout: 300,
            Dial: func() (redis.Conn, error) {
                return redis.Dial("tcp", "localhost:6379")
            },
        }
    }
    
    func main() {
    
        c := pool.Get()
        defer c.Close()
    
        _, err := c.Do("Set", "abc", 100)
        if err != nil {
            fmt.Println(err)
            return
        }
    
        r, err := redis.Int(c.Do("Get", "abc"))
        if err != nil {
            fmt.Println("get abc failed,", err)
            return
        }
    
        fmt.Println(r)
        pool.Close()
    }
  • 相关阅读:
    JSON的在javascript中的常用方法
    JUQERY判断变量是数组还是对象
    JS正则表达式大全
    jquery对事件的监听方法addEventListener()
    Hive安装(二)之表不见了
    Hive安装(一)之环境配置
    Java锁(一)之内存模型
    遗传算法(二)之组卷算法
    Ubuntu 14 Trusty安装hue
    算法(三)粒子群算法之算法分类
  • 原文地址:https://www.cnblogs.com/angelyan/p/10687656.html
Copyright © 2011-2022 走看看