0
0
0
奇迹师 的个人博客 / 58 / 0 / 创建于 1年前 / 更新于 1年前
import "github.com/gomodule/redigo/redis"
package setting
import (
"fmt"
"github.com/gomodule/redigo/redis"
"log"
"time"
)
var (
RedisPool *redis.Pool
)
func InitRedisPool() {
RedisPool = &redis.Pool{
//最大闲置连接
MaxIdle: 30,
//最大活动数
MaxActive: 30,
//数据库连接
Dial: func() (redis.Conn, error) {
c, err := redis.Dial("tcp", "127.0.0.1:6379")
if err != nil {
c.Close()
fmt.Printf("fail to dial redis: %v\n", err)
return nil, err
}
//密码认证,可填入redisd的连接密码
if _, err = c.Do("AUTH", ""); err != nil {
c.Close()
fmt.Printf("fail to auth redis: %v\n", err)
return nil, err
}
//redis 缓存数据库认证
if _, err = c.Do("SELECT", ""); err != nil {
c.Close()
fmt.Printf("fail to SELECT DB redis: %v\n", err)
return nil, err
}
return c, err
},
//测试连接是否正常
TestOnBorrow: func(c redis.Conn, t time.Time) error {
_, err := c.Do("PING")
if err != nil {
c.Close()
fmt.Printf("fail to ping redis: %v\n", err)
return err
}
return nil
},
}
log.Println("connect redis success")
}
func Get() redis.Conn {
return RedisPool.Get()
}