写入键值s

2024-06-17 18:58:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一个Key/value store(可能用python编写),主要是为了体验,因为我认为这是一个非常有用的产品。我有几个问题。一般来说,键/值对通常是如何存储在内存和磁盘上的?如何将存储在磁盘上的东西装载回内存?键/值存储是否一次将所有键/值对保存在内存中?或者是从磁盘上读取的?在

我试着找一些关于这个主题的文献,但没找到太多的资料,希望这里有人能帮我。在


Tags: storekey内存主题产品value文献磁盘
3条回答

看看Python的^{}模块,它提供了一个持久字典。它基本上将pickle存储在数据库中,通常是dmb或BSDDB。研究一下shelve是如何工作的会给你一些启示,并且源代码随python发行版一起提供。在

另一个要看的产品是Durus。这是一个对象数据库,它使用自己的B-tree实现来持久化到磁盘。在

这完全取决于你想要深入研究的复杂程度。从一个简单的Python dict以多种可能的方式序列化到一个文件(pickle可能是最简单的),您可以实现一个完整的数据库系统。在

查找redis-这是一个用C语言编写的密钥/值存储,作为服务器“DB”运行。它有一些很好的文档和易于阅读的代码,因此您可以借鉴Python实现的思想。在

更进一步,你可以阅读有关B-树的资料。在

对于您的特定问题:超过某个数据库大小,您永远无法将其全部保存在内存中,因此您需要一些从磁盘加载数据的可靠方法。还要考虑商店是单客户机还是多客户机。这对其执行产生严重后果。在

如果为了学习目的而在Python中进行键/值存储,那么从pickle模块开始可能是最容易的。这是一种将任意Python数据流写入持久存储并再次读取的快速方便的方法。在

相关问题 更多 >