Golang语言 redis 使用

时间:2022-05-05
本文章向大家介绍Golang语言 redis 使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
package main

import (
    "fmt"
    "github.com/garyburd/redigo/redis"
)

func newConn() (redis.Conn, error) {
    c, err := redis.Dial("tcp", "192.168.0.2:6379")
    if err != nil {
        return nil, err
    }

    _, err = c.Do("AUTH", "redis@hsjc")
    if err != nil {
        return nil, err
    }

    return c, err
}

func main() {
    /*
        c, err := redis.Dial("tcp", "192.168.0.2:6379")
        if err != nil {
            fmt.Println(err)
            return
        }

        defer c.Close()

        _, err = c.Do("AUTH", "redis@hsjc")
        if err != nil {
            fmt.Println(err)
            return
        }
    */

    pool := redis.NewPool(newConn, 20)
    c := pool.Get() // c用完后必须释放

    n, err := c.Do("HSET", "QahTest", "name", "QiAihui")
    if err != nil {
        fmt.Printf("HSET %sn", err)
        return
    }

    fmt.Printf("HSET return %dn", n)

    s, err := redis.String(c.Do("HGET", "QahTest", "name"))
    if err != nil {
        fmt.Printf("HGET %sn", err)
        return
    }

    fmt.Printf("HGET return %sn", s)

    n, err = c.Do("EXPIRE", "QahTest", 20)
    if err != nil {
        fmt.Printf("EXPIRE %sn", err)
        return
    }

    fmt.Printf("EXPIRE return %dn", n)

    n, err = c.Do("DEL", "QahTest")
    if err != nil {
        fmt.Printf("DEL %sn", err)
        return
    }

    fmt.Printf("DEL return %dn", n)

    s, err = redis.String(c.Do("HGET", "QahTest", "name"))
    if err != nil {
        fmt.Printf("HGET after del %sn", err)
        return
    }

}