golang操作redis

package main

import (
    "fmt"
    "redigo-master/redis"
)

func main() {
    conn, err := redis.Dial("tcp", "127.0.0.1:6379")
    if err != nil {
        fmt.Println("redis.Dial err=", err)
        return
    }
    fmt.Println("conn suc...", conn)

    defer conn.Close()
    // 写数据
    _, err = conn.Do("Set", "name", "allin1314")
    if err != nil {
        fmt.Println("redis.write err=", err)
        return
    }

    // 读数据
    data, err := redis.String(conn.Do("Get", "name"))
    if err != nil {
        fmt.Println("redis.read err=", err)
        return
    }
    fmt.Println(data)
}

Redis链接池

  Golang操作redis,还可以通过Redis链接池:

    1)事先初始化一定数量的链接,放入到链接池

    2)当Go需要操作Redis时,直接从Redis链接池取出链接即可

    3)这样可以节省临时获取Redis链接的时间,从而提高效率

    4)示意图

    

 

 代码:

package main

import (
    "fmt"
    "redigo-master/redis"
)

var pool *redis.Pool

func init() {
    pool = &redis.Pool{
        MaxIdle:     8,
        MaxActive:   0,
        IdleTimeout: 100,
        Dial: func() (redis.Conn, error) {
            return redis.Dial("tcp", "localhost:6379")
        },
    }
}

func main() {
    conn := pool.Get()
    defer conn.Close()

    // 写数据
    _, err := conn.Do("Set", "name", "admin123")
    if err != nil {
        fmt.Println("redis.write err=", err)
        return
    }

    // 读数据
    data, err := redis.String(conn.Do("Get", "name"))
    if err != nil {
        fmt.Println("redis.read err=", err)
        return
    }
    fmt.Println(data)
}

 

posted @ 2020-02-29 22:48  顽强的allin  阅读(4693)  评论(0编辑  收藏  举报