千家信息网

redis包括连接池的示例分析

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,这篇文章给大家分享的是有关redis包括连接池的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。conn:package mainimport ( "fmt"
千家信息网最后更新 2025年01月16日redis包括连接池的示例分析

这篇文章给大家分享的是有关redis包括连接池的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

conn:

package mainimport (    "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 mainimport (    "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 mainimport (    "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 mainimport (    "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)}

批量 set:

package mainimport (    "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 mainimport (    "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 mainimport (    "fmt"    "github.com/garyburd/redigo/redis")var pool *redis.Poolfunc 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()}

感谢各位的阅读!关于"redis包括连接池的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

0