我读过关于Redis和RocksDB的文章,我不了解Redis相对于RocksDB的优势。
我知道Redis是内存中的,RocksDB是内存中的,并且使用闪存.如果所有的数据都在内存中,我应该选择哪一个?他们有相同的表演吗?红度与CPU数成线性关系?我想还有其他的差异,我不明白。
我有一个适合内存的数据集,我打算选择Redis,但是看起来RocksDB提供给我的数据集也是一样的,如果有一天数据集增长太多,我就不用担心内存了。
发布于 2015-08-05 11:55:55
他们没有共同之处。你在这里试着比较苹果和橘子。
Redis是一个远程内存数据存储(类似于memcached)。它是一个服务器。单个Redis实例非常高效,但完全不可伸缩(涉及CPU)。Redis集群是可伸缩的(关于CPU)。
RocksDB是一个嵌入式密钥/值存储(类似于BerkeleyDB或更确切地说是LevelDB)。它是一个库,支持多线程和基于日志结构的合并树的持久性.
发布于 2015-11-04 04:12:33
虽然Didier的回答是正确的,他在这两个项目之间的区别,他们是由一个项目称为LedisDB。LedisDB是一个用Go编写的抽象层,它在存储引擎(如RocksDB )之上实现了大部分Redis。在许多情况下,您可以在LedisDB中直接使用相同的Redis客户端库,在某些情况下几乎减少了对Redis的替换。Redis显然更快,但正如他在问题中提到的,使用RocksDB的主要好处是您的数据集不限于可用的内存量。我发现这很有用,不是因为我正在处理超大型数据集,而是因为RAM很昂贵,而且您可以从较小的虚拟服务器中获得更多的好处。
发布于 2019-08-07 23:58:30
许多memcached服务器使用Redis (其中使用的协议是memcached,但底层服务器是Redis)。这并不使用Redis的大部分功能,但这是Redis和RocksDB都具有类似功能的一种情况(作为KVS,尽管在不同的上下文中,基于Redis的memcached是缓存,而RocksDB是数据库,尽管不是企业级的数据库)
https://stackoverflow.com/questions/31831706
复制相似问题