怎么实现一个分布式kv系统 #1 local database

这篇博客介绍了如何在Go环境下,利用BoltDB实现一个分布式键值(KV)系统,包括环境配置如远程服务器和VSCode设置,以及编程实现步骤,如设置HTTP API、分离DB模块和Web模块,并提供了相关参考资料链接。
摘要由CSDN通过智能技术生成

摘要

本节要实现的有2点

  • 环境配置:远程服务器 + VS Code设置
  • 实现类似redis的set和get功能
    • 基于bolt.DB实现db模块
    • 实现简单的http web模块

环境配置

1. 远程服务器[可选择]

远程服务器比较稳定,当然也是多折腾体验。

腾讯云服务器购买详情&一些奇奇怪怪的软件设置,请参考: 详细的配置信息

2. 配置VSCode

安装 Remote SSH插件

image-20220130144339299

连接服务器

image-20220130144737817

切换第一个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

image-20220130145506314 image-20220130145616468

设置vscode go的选项

    "go.installDependenciesWhenBuilding": true,
    "go.useCodeSnippetsOnFunctionSuggestWithoutType": true,
    "go.autocompleteUnimportedPackages": true,
    "go.gotoSymbol.includeImports": true,
    "go.useCodeSnippetsOnFunctionSuggest": true,
    "go.inferGopath": true,
image-20220130150202540

编程实现

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
image-20220130151055573
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)
	
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值