我期待写一个Key/value商店(可能在python中)主要是为了体验,因为我认为这是一个非常有用的产品.我有一些问题.通常,键/值对通常存储在内存和磁盘上?如何将存储在磁盘上的东西加载回内存?键/值存储是否一次将所有键/值对保留在内存中?还是从磁盘读取?
我试图找到一些关于这个主题的文献,但是没有走得太远,希望有人可以帮助我.
这一切都取决于您想要深入了解的复杂程度.从一个简单的Python dict
序列化到一个文件开始,有很多可能的方式(其中pickle可能是最简单的),你可以实现一个完整的数据库系统.
查找redis
- 它是一个用C语言编写并作为服务器"DB"运行的键/值存储.它有一些很好的文档和易于阅读的代码,因此您可以借用Python实现的想法.
为了更进一步,您可以阅读有关B树的信息.
对于您的特定问题:在某些数据库大小之上,您永远不能将其全部保留在内存中,因此您需要一些从磁盘加载数据的强大方法.还要考虑商店是单客户还是多客户.这对其实施产生严重后果.