文章目录
摘要
本节要实现的有2点
- 环境配置:远程服务器 + VS Code设置
- 实现类似redis的set和get功能
- 基于bolt.DB实现db模块
- 实现简单的http web模块
环境配置
1. 远程服务器[可选择]
远程服务器比较稳定,当然也是多折腾体验。
腾讯云服务器购买详情&一些奇奇怪怪的软件设置,请参考: 详细的配置信息
2. 配置VSCode
安装 Remote SSH插件

连接服务器

切换第一个tab,打开资源管理器,添加目录
3. 设置go mod
查看go版本和配置
[root@VM-24-14-centos ~]# go version
go version go1.17 linux/amd64
[root@VM-24-14-centos ~]# echo $GOPATH
/data/go
[root@VM-24-14-centos ~]# echo $GOROOT
/usr/local/go
vscode安装tools


设置vscode go的选项
"go.installDependenciesWhenBuilding": true,
"go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
"go.autocompleteUnimportedPackages": true,
"go.gotoSymbol.includeImports": true,
"go.useCodeSnippetsOnFunctionSuggest": true,
"go.inferGopath": true,

编程实现
1. 导入boltdb
[root@VM-24-14-centos go]# mkdir kv-demo
[root@VM-24-14-centos go]# cd kv-demo
[root@VM-24-14-centos kv-demo]# go mod init example.com/kv-demo
[root@VM-24-14-centos kv-demo]# go mod tidy
[root@VM-24-14-centos kv-demo]# go mod vendor
[root@VM-24-14-centos kv-demo]# go run main.go

2. 设置flag
目前就一个参数db-location,后续可以添加
// main.go
var (
dbLocation = flag.String("db-location", "my.db", "The path to the database location")
)
func main() {
flag.Parse()
db, err := bolt.Open(*dbLocation, 0600, nil)
if err != nil {
log.Fatal(err)
}
<