麻雀键值数据库开发日志
2023年5月1日,周一晚上:
首先,我想搞明白怎么把数据存储到硬盘中才能达到读写效率高。
我决定借鉴一下SQLite,可以通过研究SQLite的.db文件来看看。
我发现SQLite的.db文件主要由B-tree组成,所以我决定从研究B-tree开始。
可以预料,学习B-tree的过程应该要挺久的,不能短期内完成...
2023年5月2日,周二晚上:
找了两天,终于找到一个能轻松在windows上运行的开源键值数据库——redis,但是一试用我就发现和我当初想的键值数据库不太一样。我说呢,今天早上我还在纳闷,只有键和值怎么给图书管理系统当数据库呢。没办法,自己开的项目,说什么也要弄完。
redis只有十几M,有空看看它的源码。
一篇很棒的redis教程
Redis 教程 | 菜鸟教程
和redis比较像的数据库还有MongoDB
教程:
Windows 平台安装 MongoDB | 菜鸟教程
下载地址:
Download MongoDB Community Server | MongoDB
2023年5月2日,周二晚上:
麻雀键值数据库1.0.0版本的设计目标是:
用B树实现键值的添加、删除、查询
题外话,等弄完了这个项目,我有点想用C或者C++捣鼓一个操作系统
2023年5月3日,周三凌晨:
感觉redis很有借鉴意义,
特别是其中的redis-check-rdb.exe,感觉很有意思
2023年5月3日,周三早上:
今天早上学习B树的时候,发现了一个特别棒的B树教学视频
终于把B树搞明白了(一)_B树的引入,为什么会有B树_哔哩哔哩_bilibili
没想到,b树还和操作系统和计算机组成原理有关,
操作系统和计算机组成原理不愧是计算机四件套
我对开发操作系统越发感兴趣,感觉可以学到很多有意思的东西,感觉可以把课堂上学的东西给真正的用起来
我觉得有必要重视一下计算机四件套的学习了,特别是操作系统和计算机组成原理
2023年5月4日,周三中午:
在 Windows 平台上,Redis 使用 Win32 API 来实现终端窗口。而在 Linux 或其他类 Unix 系统中,Redis 使用 ncurses 库来实现控制台界面。
我决定用Win32 API里面的控制台 API来实现麻雀键值数据库的控制台界面,正好我以前用win32API写过两个小项目。
我打算在控制台界面里添加save命令和read命令,以实现保存内存中的键值到硬盘中和读取硬盘中的键值到内存中。
看到一篇挺全的控制台API博客
Windows Console API - Cikaros,一个无名的小站~
官方文档
控制台文档 - Windows Console | Microsoft Learn