美文网首页
golang 如何连接redis --- 2022-04-03

golang 如何连接redis --- 2022-04-03

作者: 一位先生_ | 来源:发表于2022-05-21 12:49 被阅读0次

下面介绍golang如何连接redis服务端。

1.golang连接redis

// 初始化一个新的redis client
client := redis.NewClient(&redis.Options{
        Addr:     "localhost:6379", // redis地址
        Password: "", // redis没密码,没有设置,则留空
        DB:       0,  // 使用默认数据库
    })

通过例子,我们知道主要通过Options配置redis的连接参数,下面对Options参数进行详细说明。

提示:go-redis包自带了连接池,会自动维护redis连接,因此创建一次client即可,不要查询一次redis就关闭client。

2.Options参数详解

type Options struct {
    // 网络类型 tcp 或者 unix.
    // 默认是 tcp.
    Network string
    // redis地址,格式 host:port
    Addr string

    // 新建一个redis连接的时候,会回调这个函数
    OnConnect func(*Conn) error

    // redis密码,redis server没有设置可以为空。
    Password string
    
    // redis数据库,序号从0开始,默认是0,可以不用设置
    DB int

    // redis操作失败最大重试次数,默认不重试。
    MaxRetries int
    
    // 最小重试时间间隔.
    // 默认是 8ms ; -1 表示关闭.
    MinRetryBackoff time.Duration
    
    // 最大重试时间间隔
    // 默认是 512ms; -1 表示关闭.
    MaxRetryBackoff time.Duration

    // redis连接超时时间.
    // 默认是 5 秒.
    DialTimeout time.Duration
    
    // socket读取超时时间
    // 默认 3 秒.
    ReadTimeout time.Duration
    
    // socket写超时时间
    WriteTimeout time.Duration

    // redis连接池的最大连接数.
    // 默认连接池大小等于 cpu个数 * 10
    PoolSize int
    
    // redis连接池最小空闲连接数.
    MinIdleConns int
    // redis连接最大的存活时间,默认不会关闭过时的连接.
    MaxConnAge time.Duration
    
    // 当你从redis连接池获取一个连接之后,连接池最多等待这个拿出去的连接多长时间。
    // 默认是等待 ReadTimeout + 1 秒.
    PoolTimeout time.Duration
    // redis连接池多久会关闭一个空闲连接.
    // 默认是 5 分钟. -1 则表示关闭这个配置项
    IdleTimeout time.Duration
    // 多长时间检测一下,空闲连接
    // 默认是 1 分钟. -1 表示关闭空闲连接检测
    IdleCheckFrequency time.Duration

    // 只读设置,如果设置为true, redis只能查询缓存不能更新。
    readOnly bool
}

相关文章

网友评论

      本文标题:golang 如何连接redis --- 2022-04-03

      本文链接:https://www.haomeiwen.com/subject/bwifsrtx.html