RocksDB 和 LevelDB 和 Riak 一样吗?

Is RocksDB and LevelDB just like Riak?

我对某些 NoSQL 数据库有疑问。例如,在 Ehcache 中我们有 JCache API,在 MapDB 中有 Map Interface,在 Riak KV 中我们有自己的集群进程。我如何准确地找出适合哪种实现类型的数据库?例如 RocksDB(我假设它是一个进程)和 LevelDB 相同。

作为参考,RocksDB 和 LevelDB 执行非常相似的功能,并且在某些情况下可以互换。

鉴于你 Is RocksDB and LevelDB just like Riak? 的问题,我可以说它们与 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 搜索需要 Riak KV 3.0.0 及更高版本的 Yokozuna 软件包版本,但内置于所有 Riak 2.x.x 版本等

您可能还想尝试将几个不同的选项下载到 VM 或裸机平台,试一试,看看效果如何。通常情况下,两种竞争产品在纸面上做的事情非常相似,但在您的特定用例中,一种明显优于另一种。

为了帮助您入门,这里有指向 Riak 2.9.8 (the latest release of the 2.x.x series) and to the Riak 2.2.6 docs 的链接(2.9.x 文档应该会在本月晚些时候发布)。

我不确定这是否直接回答了您的问题,但希望它能为您提供下一步的指示。