在不反序列化的情况下在 Python 中加载 mmap 字典的最佳方法

问题描述 投票:0回答:1

上下文:

我在同一个容器上运行了 Python 进程,我希望能够在它们之间共享一个只读的键值对象。

我知道我可以使用 Redis 之类的东西来共享该信息,但我正在寻找有关延迟和内存使用的最佳解决方案。

我的想法是在磁盘上生成一个二进制对象并使用 mmap

打开该文件

问题: 这让我想到了我的问题,是否有二进制格式或库可以在 ram 中加载只读文件并提供字典接口,而无需反序列化文件内容?这样我就可以在每个进程中映射文件,所有进程都会为该文件重新使用相同的 RAM,并且我将能够使用类似 dict 的界面访问文件的内容?

我正在寻找字典的文件/对象格式,类似于 Parquet 之于列式存储,可以由 python 在只读模式下使用。

python mmap rocksdb data-serialization
1个回答
0
投票

如果文件很小——在每个进程中将它放入内存

否则使用sqlite

我的想法是在磁盘上生成一个二进制对象并使用 mmap 打开该文件

你不应该使用 mmap

© www.soinside.com 2019 - 2024. All rights reserved.