123456789101112131415161718192021222324252627282930313233343536 |
- package redispool
- import (
- "github.com/garyburd/redigo/redis"
- "time"
- )
- var mapRedisPool map[string]*redis.Pool
- // GetClient get a redis connection by host
- func GetClient(host string) (redis.Conn, error) {
- pool, exist := mapRedisPool[host]
- if !exist {
- pool = &redis.Pool{
- MaxIdle: 10,
- Dial: func() (redis.Conn, error) {
- c, err := redis.Dial("tcp", host)
- if err != nil {
- return nil, err
- }
- return c, err
- },
- TestOnBorrow: func(c redis.Conn, t time.Time) error {
- _, err := c.Do("PING")
- return err
- },
- }
- mapRedisPool[host] = pool
- }
- return pool.Get(), nil
- }
- func init() {
- mapRedisPool = make(map[string]*redis.Pool)
- }
|