91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

golang初始化數據庫和redis的方法

發布時間:2020-06-04 11:42:14 來源:億速云 閱讀:1326 作者:Leah 欄目:編程語言

這篇文章給大家分享的是有關golang初始化數據庫和redis的方法。小編覺得挺實用的,因此分享給大家學習。如下資料是關于初始化數據庫和redis的內容。

初始化數據庫

數據庫orm我選用xorm。首先在config.json和config.go添加對應的數據庫配置。
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"`
}

接著,初始化數據庫:

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
}

我們再創建一個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';

初始化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
}

調整入口文件

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,創建一個數據庫叫做test,然后搭建redis,接著我們測試一下:

編譯:

go build

運行:

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.

關于golang初始化數據庫和redis的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广汉市| 福海县| 南开区| 广东省| 加查县| 弥勒县| 通化县| 贵定县| 获嘉县| 维西| 广州市| 迁西县| 吐鲁番市| 洞头县| 潮州市| 裕民县| 河津市| 林州市| 密云县| 集安市| 荆州市| 湘潭县| 武穴市| 平阴县| 凌云县| 南阳市| 太仆寺旗| 米易县| 莱西市| 西安市| 和顺县| 慈利县| 汉寿县| 安龙县| 德钦县| 胶州市| 乳源| 唐河县| 军事| 浦城县| 波密县|