go语言 mysql redis,golang初始化数据库和redis的方法

本文详细介绍了如何在Golang中初始化数据库(使用xorm ORM)和Redis。首先在配置文件中设置数据库和Redis的连接信息,然后通过代码连接数据库并进行Ping操作,最后初始化Redis客户端并测试连接。提供的代码示例展示了从配置读取到连接验证的完整流程。
摘要由CSDN通过智能技术生成

golang初始化数据库和redis的方法

发布时间:2020-06-04 11:42:14

来源:亿速云

阅读:299

作者: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.gotype 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的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值