| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package redis
- import (
- "time"
- "bet24.com/log"
- "github.com/gomodule/redigo/redis"
- )
- var (
- // 定义常量
- RedisClient *redis.Pool
- REDIS_HOST string
- REDIS_PASSWORD string
- REDIS_DB int
- )
- func InitPool(serverUrl, password string, db int) {
- if RedisClient != nil {
- log.Release("redis.InitPool already inited")
- return
- }
- log.Release("redis.InitPool %v,%v,%d", serverUrl, password, db)
- REDIS_HOST = serverUrl
- REDIS_DB = db
- REDIS_PASSWORD = password
- // 建立连接池
- RedisClient = &redis.Pool{
- // 从配置文件获取maxidle以及maxactive,取不到则用后面的默认值
- MaxIdle: 3,
- MaxActive: 1000,
- Wait: false,
- IdleTimeout: 300 * time.Second,
- Dial: func() (redis.Conn, error) {
- c, err := redis.Dial("tcp", REDIS_HOST)
- if err != nil {
- log.Release("redis.Dial failed %v", err)
- return nil, err
- }
- if len(REDIS_PASSWORD) > 0 {
- if _, err := c.Do("AUTH", REDIS_PASSWORD); err != nil {
- c.Close()
- log.Release("connect redis invalid password")
- return nil, err
- }
- }
- // 选择db
- if REDIS_DB > 0 {
- c.Do("SELECT", REDIS_DB)
- }
- return c, nil
- },
- }
- }
|