package db import ( "github.com/garyburd/redigo/redis" "pro2d/conf" "time" ) var RedisPool *redis.Pool func ConnectRedis(conf *conf.ServerConf) error { RedisPool = &redis.Pool{ //最大活跃连接数,0代表无限 MaxActive: 888, MaxIdle: 20, //闲置连接的超时时间 IdleTimeout: time.Second * 100, //定义拨号获得连接的函数 Dial: func() (redis.Conn, error) { option := []redis.DialOption{redis.DialDatabase(conf.RedisConf.DB)} if conf.RedisConf.Auth != "" { option = append(option, redis.DialPassword(conf.RedisConf.Auth)) } return redis.Dial("tcp",conf.RedisConf.Address, option...) }, } return nil } func CloseRedis() { RedisPool.Close() } func HKEYS(args ...interface{}) (reply interface{}, err error) { conn := RedisPool.Get() defer conn.Close() return conn.Do("HKEYS", args) } func HMSET(args ...interface{}) (reply interface{}, err error) { conn := RedisPool.Get() defer conn.Close() return conn.Do("HMSET", args) }