golang做个redis连接池

golang做个redis连接池

代码

package main

import (
    "github.com/go-redis/redis/v8"
    "time"
    "context"
    "log"
    "fmt"
)

func main() {

    // 连接参数
    rdbOpt := &redis.Options{
        Addr:        "127.0.0.1:6379",   // 地址
        Password:    "",     // 密码
        DB:          4,      // 选择使用的数据库

        PoolSize:       4,     // 线程池最大连接数
        MinIdleConns:   2,     // 最小空闲连接数
        MaxConnAge:     30 * time.Minute,    // 最大存活时间
        DialTimeout:    5 * time.Second,     // 超时时间
        ReadTimeout:    3 * time.Second,     // 读取超时时间
        WriteTimeout:   3 * time.Second,     // 写入超时时间
    }
    // 创建连接池客户端
    rdb := redis.NewClient(rdbOpt)

    // 上下文
    ctx := context.Background()

    // ping 一个
    pong, err := rdb.Ping(ctx).Result()
    if err != nil {
        log.Fatalf("redis connect failed: %s", err)
    }
    fmt.Println("redis connect success:", pong)

    // 设置个键
    err = rdb.HSet(ctx, "test", "a", "aa", "b", "bb").Err()
    if err != nil {
        log.Fatalf("failed: %s", err)
    }

    // 获取键值
    rslt, err := rdb.HGetAll(ctx, "test").Result()
    if err != nil {
        log.Fatalf("failed: %s", err)
    }
    fmt.Printf("get test: %#v\n", rslt)

    // 删除键
    err = rdb.Del(ctx, "test").Err()
    if err != nil {
        log.Fatalf("failed: %s", err)
    }

    return 
}

测试

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注