這篇文章給大家分享的是有關(guān)golang初始化數(shù)據(jù)庫和redis的方法。小編覺得挺實用的,因此分享給大家學(xué)習(xí)。如下資料是關(guān)于初始化數(shù)據(jù)庫和redis的內(nèi)容。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比墊江網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式墊江網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋墊江地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
數(shù)據(jù)庫orm我選用xorm。首先在config.json和config.go添加對應(yīng)的數(shù)據(jù)庫配置。
config.json:
"db_config": {
"db_host": "127.0.0.1",
"db_port": "3306",
"db_user": "root",
"db_password": "123456",
"db_name": "test"
}
config.go
type DBConfig struct {
DbHost string `json:"db_host"`
DbPort string `json:"db_port"`
DbUser string `json:"db_user"`
DbPassword string `json:"db_password"`
DbName string `json:"db_name"`
}
接著,初始化數(shù)據(jù)庫:
package db
import (
"github.com/TomatoMr/awesomeframework/config"
_ "github.com/go-sql-driver/MySQL"
"github.com/go-xorm/xorm"
"github.com/pkg/errors"
)
var engine *xorm.Engine
func InitEngine() error {
var err error
conf := config.GetConfig()
engine, err = xorm.NewEngine("mysql", conf.DBConfig.DbUser+
":"+conf.DBConfig.DbPassword+"@tcp("+conf.DBConfig.DbHost+":"+conf.DBConfig.DbPort+")/"+conf.DBConfig.DbName+"?charset=utf8")
if err != nil {
err = errors.Wrap(err, "InitEngine1")
return err
}
err = engine.Ping()
if err != nil {
err = errors.Wrap(err, "InitEngine2")
return err
}
return nil
}
func GetEngine() *xorm.Engine {
return engine
}
我們再創(chuàng)建一個sql,等會測試連接用:
DROP DATABASE IF EXISTS `test`;
CREATE DATABASE `test`;
USE `test`;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users`
(
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
`name` varchar(40) NOT NULL COMMENT '名字',
`age` int NOT NULL DEFAULT 0 COMMENT '年齡',
PRIMARY KEY (`id`)
) ENGINE = InnoDB COMMENT 'users';
同樣先添加配置:
config.json:
"redis_config": {
"addr": "127.0.0.1:6379",
"password": "",
"db": 0
}
config.go:
type RedisConfig struct {
Addr string `json:"addr"`
Password string `json:"password"`
DB int `json:"db"`
}
初始化redis:
func InitRedis() error {
conf := config.GetConfig()
client = redis.NewClient(&redis.Options{
Addr: conf.RedisConfig.Addr,
Password: conf.RedisConfig.Password,
DB: conf.RedisConfig.DB,
})
pong, err := client.Ping().Result()
if err != nil {
err = errors.Wrap(err, "InitRedis")
return err
}
logger.GetLogger().Info("Redis ping:", zap.String("ping", pong))
return nil
}
err = db.InitEngine()
if err != nil {
fmt.Printf("Init DB failed. Error is %v", err)
os.Exit(1)
}
err = redis.InitRedis()
if err != nil {
fmt.Printf("Init Redis failed. Error is %v", err)
os.Exit(1)
}
使用上面的sql,創(chuàng)建一個數(shù)據(jù)庫叫做test,然后搭建redis,接著我們測試一下:
編譯:
go build
運行:
awesomeframework --config=./config/config.json
看下日志打?。?/p>
2020-01-20T20:09:26.798+0800 info Redis ping: {"ping": "PONG"}
2020-01-20T20:09:26.798+0800 info Init success.
關(guān)于golang初始化數(shù)據(jù)庫和redis的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
本文名稱:golang初始化數(shù)據(jù)庫和redis的方法
標(biāo)題網(wǎng)址:http://www.rwnh.cn/article38/ippgsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、手機(jī)網(wǎng)站建設(shè)、網(wǎng)站設(shè)計公司、服務(wù)器托管、外貿(mào)建站、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)