下面介绍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
}