Golang
文章平均质量分 82
没有挑战 就没有改变 自学一周 便开始写Go项目 也算是宝贵的经验了
喝不完一杯咖啡
学而不思则罔,思而不学则殆
展开
-
【GoLang】记录一次Go项目中各类Count(点赞数、评论数、浏览数等)缓存方案
文章目录背景方案key设计同步机制流程图写缓存定时任务读缓存代码实现相关约定写缓存定时任务读缓存背景noi项目中,涉及多个模型(数据表)的多种计数(count值),目前主要包含:习题:题解数、提交数、通过数评论:点赞数、回复数题解:浏览数、点赞数、评论数用户在使用过程中,会频繁地操作这些计数,比如:点赞、取消点赞、评论、回复、写题解、做题等等,包括读取、写入,写入主要包含递增和递减,如果每次操作都等主业务流程结束后,同步去修改数据库,一是会影响性能,二是会增加数据库锁竞争的开销,所以,将这些原创 2021-12-10 19:31:45 · 2973 阅读 · 6 评论 -
【GoLang】记录在Go中使用robfig/cron来做定时任务
依赖官方文档注意引用的时候需要像下面这样,加上版本和标签,否则会报404 Not Foundgo get github.com/robfig/cron/v3@v3.0.0简单使用package mainimport ( "fmt" "github.com/robfig/cron/v3")func main() { c := newWithSeconds() spec := "*/5 * * * * ?" _, e := c.AddFunc(spec, func() { f原创 2021-12-06 16:52:57 · 1900 阅读 · 3 评论 -
【GoLang】记录一次使用Go实现微信小程序一键登录操作
文章目录需求实现整体流程微信登陆流程Go后端实现code2sessionAES解密接口部分需求PC端一个B/S应用,登陆时支持微信扫码登陆,微信扫码后,会跳转到一个小程序,通过该小程序进行授权登陆,用小程序的原因是只有小程序能获取到用户的手机号,效果如下实现整体流程首先页面需要生成一个二维码:后端需要提供一个唯一的code,使用uuid即可,然后再拼接为小程序页面的url,二维码由前端根据url生成即可将code存入缓存,设置状态为:1-初始状态前端不断扫描该code的状态,用以更新二维原创 2021-11-30 16:38:58 · 7953 阅读 · 3 评论 -
【GoLang】《GORM实战》第三篇:关联与预加载
文章目录关联分类重写外键、引用多态关联外键约束关联操作自动添加关联关联模式查询关联添加关联替换关联删除关联级联删除清空关联关联计数批量处理数据预加载Preload带条件的预加载预加载全部自定义预加载 SQL嵌套预加载Joins预加载关联分类belongs to:会与另一个模型建立了一对一的连接。 这种模型的每一个实例都“属于”另一个模型的一个实例。比如:一个学员属于一个门派has one:与另一个模型建立一对一的关联,但它和一对一关系有些许不同。 这种关联表明一个模型的每个实例都包含或拥有另一个模原创 2021-11-23 15:51:45 · 3931 阅读 · 0 评论 -
【GoLang】《GORM实战》第二篇:CRUD之路
文章目录创建创建记录默认值扩展创建选项钩子方法Upsert 及冲突查询一般查询Where 条件普通SQL查询Struct & Map查询Not 条件Or条件内联条件额外查询选项FirstOrInitAttrsAssignFirstOrCreateAttrsAssign高级查询子查询选择字段排序数量偏移总数Group & Having连接Pluck扫描Scopes更新更新所有字段更新修改字段更新选定字段无Hooks更新批量更新使用SQL表达式更新修改Hooks中的值其它更新选项删除删除记录批量原创 2021-11-23 15:49:08 · 2876 阅读 · 0 评论 -
【GoLang】《GORM实战》第一篇:初识GORM框架
文章目录概述特性安装连接到数据库数据库配置自定义驱动现有的数据库连接连接池快速入门模型gorm.Model模型定义嵌入结构体字段级权限控制时间追踪结构体标签字段标签关联标签示例约定主键表名列名时间戳跟踪CreatedAtUpdatedAtDeletedAtGorm方法分类链式方法Finisher Method新建会话模式概述The fantastic ORM library for Golang aims to be developer friendly.一个致力于开发者友好、极好的Golang OR原创 2021-11-23 15:44:18 · 4421 阅读 · 0 评论 -
【GoLang】记录一些开发过程中的业务SQL及对应的Gorm实现
文章目录记录1背景需求1:按题目分组查询用户提交数SQLGorm写法需求2:按题目分组查询,并统计count,获取最新的时间SQLGorm写法需求3:在需求2的基础上,按时间倒序排序SQLGorm写法需求4:同时查询多个不同条件count值SQLGorm写法记录1背景表1:problems(习题表,存放习题的基本信息)表2:submissions(提交记录表,用户对习题的提交记录,包含提交内容、提交结果、时间等信息)开发语言是Go,使用的ORM框架是Gorm需求1:按题目分组查询用户提交数SQ原创 2021-11-12 14:02:56 · 1120 阅读 · 0 评论
分享