【发布时间】:2021-06-09 10:36:07
【问题描述】:
我对一些 NoSQL 数据库有疑问。例如,在 Ehcache 中有 JCache API,在 MapDB 中有 Map Interface,在 Riak KV 中有自己的集群进程。如何准确找出适合哪种实现类型的数据库?例如对于 RocksDB(我假设它是一个进程),对于 LevelDB 也是如此。
【问题讨论】:
标签: riak leveldb rocksdb jcache mapdb
我对一些 NoSQL 数据库有疑问。例如,在 Ehcache 中有 JCache API,在 MapDB 中有 Map Interface,在 Riak KV 中有自己的集群进程。如何准确找出适合哪种实现类型的数据库?例如对于 RocksDB(我假设它是一个进程),对于 LevelDB 也是如此。
【问题讨论】:
标签: riak leveldb rocksdb jcache mapdb
作为参考,RocksDB 和 LevelDB 执行的功能非常相似,在某些情况下可以互换。
鉴于您对Is RocksDB and LevelDB just like Riak? 的问题,我可以说它们与 Riak 提供的可扩展分布式平台不同,该平台可以同时连接到一个或多个后端数据库(目前支持的后端是 Bitcask、LevelDB、Leveled和记忆)。 RocksDB 和 LevelDB 本质上是独立的数据库平台,可以单独使用,也可以被 Riak 等其他软件用作后端。虽然您可以在技术上将 RocksDB 实现为 Riak KV 的后端,而无需大量自定义代码,但您可能不希望这样做,因为 RocksDB 无法很好地扩展。
How do I exactly find out which database fits to which implementation type? 是一个相当广泛的问题。我想您可能想将其改写为Which databases offer me {my list of desired implementations/functions}?,以便社区成员更容易回答。请注意,一些 NoSQL 数据库有多种用途,例如正如您提到的 Riak KV,我们有 Maps、Sets、GSets、Flags、Registers、Solr Search、2i 和标准 CRDT 选项,但其中一些可能与其他要求相关,例如2i 仅适用于 LevelDB/Leveled 后端,Solr Search 需要 Riak KV 3.0.0 及更高版本的 Yokozuna 包版本,但内置于所有 Riak 2.x.x 版本等。
您可能还想尝试将几个不同的选项下载到虚拟机或裸机设备,试一试,看看效果如何。通常情况下,两种竞争产品在纸面上做的事情非常相似,但在您的特定用例中,一种明显优于另一种。
为了帮助您入门,这里是指向Riak 2.9.8(2.x.x 系列的最新版本)和Riak 2.2.6 docs(2.9.x 文档应该在本月晚些时候发布)的链接。
我不确定这是否直接回答了您的问题,但希望它可以为您指明下一步该去哪里。
【讨论】: