欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

golang初始化數(shù)據(jù)庫(kù)和redis的方法

這篇文章給大家分享的是有關(guān)golang初始化數(shù)據(jù)庫(kù)和redis的方法。小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí)。如下資料是關(guān)于初始化數(shù)據(jù)庫(kù)和redis的內(nèi)容。

創(chuàng)新互聯(lián)公司-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比墊江網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式墊江網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋墊江地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴(lài)。

初始化數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)orm我選用xorm。首先在config.json和config.go添加對(duì)應(yīng)的數(shù)據(jù)庫(kù)配置。
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ù)庫(kù):

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
}

我們?cè)賱?chuàng)建一個(gè)sql,等會(huì)測(cè)試連接用:

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';

初始化redis

同樣先添加配置:
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
}

調(diào)整入口文件

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)
    }

測(cè)試一下

使用上面的sql,創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)叫做test,然后搭建redis,接著我們測(cè)試一下:

編譯:

go build

運(yùn)行:

awesomeframework --config=./config/config.json

看下日志打印:

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ù)庫(kù)和redis的方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

本文名稱(chēng):golang初始化數(shù)據(jù)庫(kù)和redis的方法
標(biāo)題網(wǎng)址:http://chinadenli.net/article38/ippgsp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)手機(jī)網(wǎng)站建設(shè)網(wǎng)站設(shè)計(jì)公司服務(wù)器托管外貿(mào)建站搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)