当前位置: 首页 > news >正文

5.go-zero集成gorm 和 go-redis

  1. 安装gorm相关依赖

    go get -u gorm.io/gormgo get -u gorm.io/driver/mysql
    
  2. 编写配置文件
    在这里插入图片描述

  3. 编写model加载配置

在这里插入图片描述

  1. 在main中加载配置文件
var configFile = flag.String("f", "etc/auth.yaml", "the config file")func main() {flag.Parse()var c config.Configconf.MustLoad(*configFile, &c)....
}

InitGorm连接MySQL
在这里插入图片描述

ServiceContext中给DB赋值

// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2package svcimport ("im-server/core""im-server/im_auth/auth_api/internal/config""gorm.io/gorm"
)type ServiceContext struct {Config config.ConfigDB     *gorm.DB
}func NewServiceContext(c config.Config) *ServiceContext {return &ServiceContext{Config: c,DB:     core.InitGorm(c.MySql.DataSource),}
}

如法炮制,我们下面开始集成 go-redis

  1. 安装依赖
github.com/redis/go-redis@upgrade 

2.在yaml配置文件中增加redis相关配置

Name: auth
Host: 0.0.0.0
Port: 8889
MySql:DataSource: root:a12345678@tcp(127.0.0.1:3306)/my_qq?charset=utf8mb4&parseTime=True&loc=Local
Redis:Host: 127.0.0.1Port: 6379Password: ""
  1. 修改config文件
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2package configimport "github.com/zeromicro/go-zero/rest"type Config struct {rest.RestConfMySql struct {DataSource string}Redis struct {Host     stringPort     intPassword string}
}
package coreimport ("fmt""github.com/redis/go-redis"
)func InitRedis(host string, port int) *redis.Client {rdb := redis.NewClient(&redis.Options{Addr:     fmt.Sprintf("%s:%d", host, port),Password: "", // No password setDB:       0,  // Use default DB})return rdb
}
// Code scaffolded by goctl. Safe to edit.
// goctl 1.9.2package svcimport ("github.com/redis/go-redis""im-server/core""im-server/im_auth/auth_api/internal/config""gorm.io/gorm"
)type ServiceContext struct {Config config.ConfigDB     *gorm.DBRedis  *redis.Client
}func NewServiceContext(c config.Config) *ServiceContext {return &ServiceContext{Config: c,DB:     core.InitGorm(c.MySql.DataSource),Redis:  core.InitRedis(c.Redis.Host, c.Redis.Port),}
}
http://www.dtcms.com/a/528284.html

相关文章:

  • Linux系统入门:System V进程间通信
  • 第一章 蓝图篇 - 全景认知与项目设计
  • mormot.net.server.pas源代码分析
  • 丹阳网站建设价位php网站搭建
  • 【工具分享】另一个免费开源的远程桌面服务-Apache Guacamole
  • RabbitMQ TTL机制详解
  • XSL-FO 对象:深度解析与实际应用
  • 在JavaScript / Node.js / 抖音小游戏中,使用tt.request通信
  • 两学一做网站源码wordpress 柚子皮下载
  • Go slog 日志打印最佳实践指南
  • Go的垃圾回收
  • 珠海网站管理公司国际公司名字
  • 自动化模型学习器——autoGluon
  • 长沙网站建设招聘外贸做那种网站有哪些
  • 浏览器卡顿内存高?傲游浏览器三核加速,网页加载效率提升60%
  • 研发部门验收流程
  • 贪心算法 with Gemini
  • 掌握 Rust:从内存安全到高性能服务的完整技术图谱
  • [Java]重学Java-Java平台
  • Bash Shell 脚本编程入门详解
  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第七天)
  • 营销型网站建立费用手机端网站开发页
  • 网页模板免费资源搜索引擎排名优化技术
  • 2025年9月电子学会全国青少年软件编程等级考试(Python四级)真题及答案
  • hot 100 技巧题
  • Evaluating Long Context (Reasoning) Ability
  • 乐器基础知识学习
  • 做英语手抄报 什么网站中铁建设集团有限公司分公司
  • Java自动化测试之数据库的操作
  • 算法:并行课程II