专栏首页roseduan写字的地方使用 Go 语言写一个数据库—6 完结撒花

使用 Go 语言写一个数据库—6 完结撒花

Hello 大家好,我是 roseduan,前面的几篇文章,我已经讲述了 rosedb 最基础也是最核心的知识,如果你没有印象的话,可以温习一下:

使用 Go 语言写一个数据库—5 命令行

使用 Go 语言写一个数据库—4 数据结构

使用 Go 语言写一个数据库—3 数据库操作

使用 Go 语言写一个数据库—2 基本数据操作

使用 Go 语言写一个数据库—1 基本结构


前面讲述了最基础的数据库的结构,我们知道了 rosedb 其实是基于 LSM 模型的,基本的数据写入、删除、修改的操作,还有启动、重启、关闭数据库,以及数据结构例如链表,哈希表,跳表。

可以说,前面的这些内容就是目前 rosedb 的核心了,如果你搞懂了,这个数据库就不在话下了,写到简历当中,也一定是非常大的亮点。

今天是讲解 rosedb 的最后一篇文章,内容比较的轻松,不涉及技术问题了,参考视频在文章的底部。

你从这个项目当中学到了什么?

如果仔细看了前面的几篇文章的话,你一定会有所收获吧,你可以把你学到的留言告诉我哦。

其实在我的 README 文件当中我也说了,这其实是一个学习 Go 语言的挺不错的项目,大多数 Go 语言的基础语法知识都涵盖了,还有一些高级特性;还有数据结构的一些内容;还有文件,网络等知识。

我也从这个项目当中学到了很多,锻炼了自己的编程能力,并且帮助我在面试的过程当中更加得心应手。

后续一定会慢慢的完善这个项目,努力为大家带来更大的价值。

你能为这个项目做什么?

相信也有一些朋友,对这个项目比较的感兴趣,然后想亲自参与进来,完善相关的功能,或者修改 bug 等等,这其实是非常值得赞扬的。

针对这些小伙伴,我可以给你一些提示。

目前项目当中,还有非常多待完善的功能,以及可优化的地方,比如:

  • 支持事务,ACID 特性
  • 文件数据压缩存储(snappy、zstd、zlib)
  • 缓存淘汰策略(LRU、LFU、Random)
  • 支持更多的命令操作(type,keys,mset,mget,zcount,etc...)
  • 生成 go dev 文档(需要写 examples)(pkg.go.dev)
  • 其他:发现 bug 并修改做压测,性能优化

当然这些只是我列举到的,还有很多你可以自己去钻研的地方,期待早日收到你的 Pr!如果你有任何想法,也欢迎加我微信 kiss_duan 与我沟通。

视频参考


最后,告知一下大家,我目前建立了这个项目的微信交流群,你进群可以和大家一起交流学习!

本文分享自微信公众号 - roseduan写字的地方(rose_duan),作者:roseduan

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2021-05-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 Go 语言写一个数据库—4 数据结构

    前面几篇文章,我已经对 rosedb 有了一定的讲解了,如果还没有看前面的内容,请先看一下之前的内容,这样你才能更好的理解本篇文章的内容。

    roseduan
  • 使用 Go 语言写一个数据库—3 数据库操作

    在前面的两篇文章当中,我给大家介绍了 rosedb 的基础结构,以及基本的数据操作流程。

    roseduan
  • 使用 Go 语言写一个数据库—5 命令行

    Hello 大家好,我是 roseduan,上一次给大家分享了 rosedb 项目当中所涉及到的一些数据结构,有链表、哈希表、跳表、有序集合,内容比较的硬核,你...

    roseduan
  • 使用 Go 语言写一个数据库—2 基本数据操作

    上一次给大家介绍了 rosedb 的基本结构:使用 Go 语言写一个数据库—1 基本结构

    roseduan
  • 【Python】利用Requests模块进行密码爆破

    一名白帽的成长史
  • 如何让服务器从30台缩减到2台的:从Ruby迁移到Go语言

    我们开发第一版的IronWorker已经是3年前的事了,是用Ruby写的,API基于Rails开发。我们没用多久就发展成了相当大的规模,很快我们就触及到了Rub...

    李海彬
  • [技术] 谈谈Python

    昨天的文章收获了不少有价值的回复。不少人发现了一个大bug,那就是「上帝的归上帝,撒旦的归撒旦」。囧死我了。脑手不同步这病怎么治啊~以后我写完文章争取好好复查一...

    tyrchen
  • 从 Python 切换到 Go 的 9 个理由

    切换到一种新的编程语言通常是一件大事,特别是当团队成员对原始语言有丰富经验时。今年年初, Stream 将其主要编程语言从 Python 切换到了 Go。本文将...

    互扯程序
  • 人生苦短,我要换Go!

    在使用健壮的软件开发编程语言方面,Golang 已经被许多人选中。这种编程语言为程序员提供了独特的好处。

    新智元
  • Google用Go语言解决现代计算难题

    计算机一直在演化,但是编程语言并没有以同样的速度演化。现在的手 机,内置的CPU核数可能都多于我们使用的第一台电脑。高性能服务器拥有 64核、128核,甚至更多...

    企鹅号小编
  • Go语言经典库使用分析(八)| 变量数据结构调试利器 go-spew

    我们在使用Golang(Go语言)开发的过程中,会通过经常通过调试的方式查找问题的原因,解决问题,尤其是当遇到一个很棘手的问题的时候,就需要知道一段代码在执行的...

    飞雪无情
  • SCF+腾讯云API+企业微信机器人实现CDB慢查询提醒

    CDB数据库在腾讯云控制台可以看到每个数据库示例的操作日志。

    树根
  • 网易有道CEO周枫:Go语言继承了C语言的灵活简单

    来源:周枫 转载编辑:常佩琦 【新智元导读】网易有道CEO周枫推荐Go语言。他认为Go很好地继承了C语言灵活、简单有效的思想;Go有很高的生产效率;Go精选了一...

    新智元
  • 事件分析 | 门罗币挖矿新家族「罗生门」

    腾讯安全云鼎实验室通过部署的威胁感知系统捕获了一批挖矿样本(具有同源性),是一批可挖取门罗币(xmr)的挖矿病毒。这批样本今年5月开始出现,目前各大杀软对此样本...

    云鼎实验室
  • 献上一串Python代码,拿去冲顶百万大奖吧!王思聪周鸿祎这回真要哭晕了

    作者 | 明明 编辑 | 鸽子 2018年伊始,王思聪就在微信朋友圈发布了新年第一周的总结:“王思聪撒币,张一鸣撒币,周鸿祎撒币,奉佑生撒币。” 瞬间将直播竞赛...

    AI科技大本营
  • 什么是Go语言?

    Youngxj
  • 为什么我们从Python切换到Go?

    切换到新的编程语言向来是关键一步,尤其是当你的团队只有一位成员有该语言的使用经验时。今年年初,我们将 Stream 的主要编程语言从Python 切换到 Go。...

    FesonX
  • 08-SpringCloud Consul

    Consul is a service mesh solution providing a full featured control plane with s...

    彼岸舞
  • Golang 需要避免踩的 50 个坑(三)

    Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑...

    aoho求索

扫码关注云+社区

领取腾讯云代金券