package db import ( "fmt" "github.com/garyburd/redigo/redis" "pro2d/conf" "pro2d/utils" "time" ) type RedisPool struct { RedisPool *redis.Pool } func (rp *RedisPool)Connect(conf *conf.ServerConf) error { rp.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 (rp *RedisPool)Close() { rp.RedisPool.Close() } func (rp *RedisPool) Insert() error { conn := rp.RedisPool.Get() defer conn.Close() reply, err := conn.Do("HKEYS", fmt.Sprintf("account:%s", "123123")) if err != nil { return err } utils.Sugar.Debugf("%v", reply) reply, err = conn.Do("HMSET", fmt.Sprintf("account:%s", "1231231"), "phone", "1231231", "passwd", "2131231") if err != nil { utils.Sugar.Errorf("%v", err) return err } utils.Sugar.Debugf("%v", reply) return nil }