之前一篇文章介绍过使用redigo连接redis数据库处理,在使用中发现如果初始化一条链接连接redis做相关操作,使用中发现当两个程序交替使用redis时,先前建立的链接会断掉,只能每次操作的时候重新建立链接,使用后关闭。后来发现redigo有一个连接池的功能,所以改用链接池处理
先介绍下链接池的结构
type Pool struct {
//Dial 是创建链接的方法
Dial func() (Conn, error)
//TestOnBorrow 是一个测试链接可用性的方法
TestOnBorrow func(c Conn, t time.Time) error
// 最大的空闲连接数,表示即使没有redis连接时依然可以保持N个空闲的连接,而不被清除,随时处于待命状态
MaxIdle int
// 最大的激活连接数,表示同时最多有N个连接 ,为0事表示没有限制
MaxActive int
//最大的空闲连接等待时间,超过此时间后,空闲连接将被关闭
IdleTimeout time.Duration
// 当链接数达到最大后是否阻塞,如果不的话,达到最大后返回错误
Wait bool
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
使用方法可以看下边的例子
package main
import (
"flag"
"fmt"
"github.com/garyburd/redigo/redis"
"time"
)
方便使用也同样做了一个封装
|
请发表评论