gpt4 book ai didi

node.js - Node.js 的最快、非基于内存的多进程键值存储

转载 作者:IT老高 更新时间:2023-10-28 22:01:18 26 4
gpt4 key购买 nike

Node.js 支持多进程最快的非内存键值存储是什么?

我需要存储简单的键值字符串/字符串对(不是文档或 JSON,只是字符串)。
以下是一些示例(可能有数百万个):

  • 12345678 – abcdefghijklmnopabcdefghijklmnop
  • 86358098 – ahijklmnopbcdefgahijklmnopbcdefg
  • abcdefghijklmnopabcdefghijklmnop - 12345678
  • ahijklmnopbcdefgahijklmnopbcdefg - 86358098

我试过了:

  • Redis :它非常快,可以满足我的所有需求,但会消耗太多 RAM。
  • LevelDB :它速度快,RAM 上不太重,但只有单进程。

LevelDB 的解决方法是 multilevel ,它通过 HTTP 公开单个 LevelDB 进程。
但这当然是有代价的。我需要快速的东西。

是否有任何键值存储:

  • 支持 Node.js 或为其提供绑定(bind);
  • 存储字符串/字符串对;
  • 支持多进程;
  • 不完全驻留在内存中;
  • 快吗?

我只关心阅读。快速多进程读取是必要的,但不是写入。
我对 LevelDB 目前的速度很满意,只是不满意它是单进程的。


其他细节:

  • 我说的是大约 5000 万个键/值对,键和值在 8 到 500 个字符之间。
  • 代码将在常规 Linux 服务器上运行。
  • 内存使用量应限制在几 GB(4GB 即可,8GB 可接受)
  • 阅读比写作更重要;实际上,我可以不写。
  • 速度比什么都重要(考虑到内存和多进程限制)。

最佳答案

我建议看看 LMDB (这是 OpenLDAP 最高效的引擎,并在许多其他开源项目中使用)。

LMDB 是一种嵌入式键/值存储,具有 Berkeley-DB 或 LevelDB 之类的 API,不必将所有内容存储在内存中,并且可以支持来自多个进程的访问。有 Node.js 绑定(bind):

关于node.js - Node.js 的最快、非基于内存的多进程键值存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21204979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com