本节目标
上一节完成了模板渲染,业余时间我增加了几个页面,大家可以根据分支去查看每天做的工作,这一节增加配置文件的读取,完成redis缓存的添加,一些信息优先访问redis缓存,另外增加日志库打印日志,最后完成项目的容器化
redis缓存
之前的文章讲述过redis的增删改查,这里也和之前redis操作类似,增加文章的查询效率。
初始化redis连接池
1 | func InitRedis() { |
比如我们将session保存在redis中
1 | func AddAdminSession(sessionId string, sessionData string) error { |
依此类推,增加了很多redis读写模块,不一一赘述了。
配置文件读取
服务器用到的配置文件我写在config/config.toml中
1 | [mongo] |
然后实现了config.go用来读取配置文件
1 | package config |
上述代码根据toml标签读取配置文件将对应字段写入结构体对象中,就完成了读取。
增加日志库
对于日志库的选择,我选择了uber提供的zap库,同时配合lumberjack完成日志切割
1 | package logger |
设置日志文件最大10M,最多备份五个文件,最长时间为30天,同时可以支持打印行号等功能。
容器化
先实现dockerfile,然后生成镜像
1 | FROM golang:1.16 |
设置ENV准备了golang的运行环境,时区设置为上海,工作目录为/src,然后将源码由宿主机拷贝进入镜像编译并运行
在项目的根目录,执行如下命令生成镜像
1 | docker build -t blog . |
启动容器即可
1 | docker run --name blogds -p 8088:8088 -v /data/blog/log:/bin/log --restart=always -d blog |
总结
到目前为止,我们完成了博客系统后台的开发,仅用三篇文章无法全部说明其中细节,只是列举了后台系统经历的几个阶段,具体代码可以去github看看,谢谢大家赏星。
源码地址:
https://github.com/secondtonone1/bstgo-blog