Mysql封装

package db

import (
	"fmt"
	_ "github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
)


var DB *sqlx.DB


func init(){

	database, err := sqlx.Open("mysql", "root:root@tcp(127.0.0.1:3306)/test")
	if err != nil {
		fmt.Println("open mysql failed,", err)
		return
	}
	DB = database

}

Redis 池连接封装

package db

import (
	"github.com/garyburd/redigo/redis"
)

var RedistPool *redis.Pool  //创建redis连接池


func init(){
	RedistPool = &redis.Pool{     //实例化一个连接池
		MaxIdle:16,    //最初的连接数量
		MaxActive:0,    //连接池最大连接数量,不确定可以用0(0表示自动定义),按需分配
		IdleTimeout:300,    //连接关闭时间 300秒 (300秒不使用自动关闭)
		Dial: func() (redis.Conn ,error){     //要连接的redis数据库
			c,error := redis.Dial("tcp","localhost:6379")
			c.Do("AUTH","mifengai")
			return c,error
		},
	}

}

 

使用:

import (
	"fmt"
	"thor/app/db"
	"github.com/garyburd/redigo/redis"
)

func main(){

	pool := db.RedistPool.Get()
	_,setError := pool.Do("Set","name","redisdb")
	if setError!=nil{
		fmt.Println("出现了错误:",setError)
		return
	}


    redis_data,redis_err := 
    redis.Values(pool.Do("zrangebyscore","dbsource",0,466))


	if(redis_err!=nil){
		panic(redis_err.Error())
	}else{
		fmt.Println("get success")

		for _, v := range redis_data {
			m := string(v.([]byte))
			fmt.Println(m)
		}
	}


	ur, err := db.DB.Exec("INSERT INTO `userinfo` (`username`,`password`) VALUES (?,?)", "admin", "admin@admin.com")
	if err != nil {
		return
	}


}