RedisUtil.go 1.13 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
package util

import (
	"fmt"
	"github.com/astaxie/beego"
	"github.com/gomodule/redigo/redis"
	"time"
)

var (
	// 定义常量
	RedisClient    *redis.Pool
	REDIS_HOST     string
	REDIS_DB       int
	REDIS_PASSWORD string
)

func init() {
	REDIS_HOST = beego.AppConfig.String("redis.host")
	REDIS_DB, _ = beego.AppConfig.Int("redis.db")
	REDIS_PASSWORD = beego.AppConfig.String("redis.password")

	RedisClient = &redis.Pool{
		MaxIdle:         beego.AppConfig.DefaultInt("redis.maxidle", 1),
		MaxActive:       beego.AppConfig.DefaultInt("redis.maxactive", 10),
		IdleTimeout:     180 * time.Second,
		Wait:            false,
		MaxConnLifetime: 0,
		Dial: func() (redis.Conn, error) {
			c, err := redis.Dial("tcp", REDIS_HOST)
			if err != nil {
				fmt.Println(err)
				return nil, err
			}

			// 设置密码
			if _, err := c.Do("AUTH", REDIS_PASSWORD); err != nil {
				fmt.Println(err)
				return nil, err
			}

			// 选择db
			c.Do("SELECT", REDIS_DB)
			fmt.Println("Redis Connect Scuess!")
			return c, nil
		},
	}
}

func FlushRecordToRedis(key, record string) {
	rc := RedisClient.Get()
	rc.Do("hset", "record", key, record)
	defer rc.Close()

}