首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Redis对RocksDB

Redis对RocksDB
EN

Stack Overflow用户
提问于 2015-08-05 11:50:34
回答 5查看 35.9K关注 0票数 52

我读过关于Redis和RocksDB的文章,我不了解Redis相对于RocksDB的优势。

我知道Redis是内存中的,RocksDB是内存中的,并且使用闪存.如果所有的数据都在内存中,我应该选择哪一个?他们有相同的表演吗?红度与CPU数成线性关系?我想还有其他的差异,我不明白。

我有一个适合内存的数据集,我打算选择Redis,但是看起来RocksDB提供给我的数据集也是一样的,如果有一天数据集增长太多,我就不用担心内存了。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-08-05 11:55:55

他们没有共同之处。你在这里试着比较苹果和橘子。

Redis是一个远程内存数据存储(类似于memcached)。它是一个服务器。单个Redis实例非常高效,但完全不可伸缩(涉及CPU)。Redis集群是可伸缩的(关于CPU)。

RocksDB是一个嵌入式密钥/值存储(类似于BerkeleyDB或更确切地说是LevelDB)。它是一个库,支持多线程和基于日志结构的合并树的持久性.

票数 110
EN

Stack Overflow用户

发布于 2015-11-04 04:12:33

虽然Didier的回答是正确的,他在这两个项目之间的区别,他们是由一个项目称为LedisDB。LedisDB是一个用Go编写的抽象层,它在存储引擎(如RocksDB )之上实现了大部分Redis。在许多情况下,您可以在LedisDB中直接使用相同的Redis客户端库,在某些情况下几乎减少了对Redis的替换。Redis显然更快,但正如他在问题中提到的,使用RocksDB的主要好处是您的数据集不限于可用的内存量。我发现这很有用,不是因为我正在处理超大型数据集,而是因为RAM很昂贵,而且您可以从较小的虚拟服务器中获得更多的好处。

票数 32
EN

Stack Overflow用户

发布于 2019-08-07 23:58:30

  1. 一般来说,Redis比RocksDB具有更多的功能。它本机可以理解复杂数据结构(如列表和数组)的语义。相反,RocksDB将存储的值看作是一团数据。如果您想做任何进一步的处理,您需要将数据带到您的程序并在那里处理(换句话说,您不能将处理委托给数据库引擎(又名RocksDB) )。
  2. RocksDB只在一台服务器上运行。Redis有一个集群版本(尽管它不是免费的)
  3. Redis是为内存中的计算而构建的,虽然它也支持将数据备份到持久存储,但主要用例是内存用例。相比之下,RocksDB通常用于持久化数据,并且在大多数情况下将数据存储在持久性介质中。
  4. RocksDB有更好的多线程支持(特别是对于读-写仍然受到并发访问的影响)。

许多memcached服务器使用Redis (其中使用的协议是memcached,但底层服务器是Redis)。这并不使用Redis的大部分功能,但这是Redis和RocksDB都具有类似功能的一种情况(作为KVS,尽管在不同的上下文中,基于Redis的memcached是缓存,而RocksDB是数据库,尽管不是企业级的数据库)

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31831706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档