2013-03-12 197 views
16

我目前使用Redis作为我的应用程序,其功能非常适合我的应用程序(列表,集合,排序集等)。寻找一个基于磁盘的类似redis的数据库

我的应用程序在很大程度上依赖于排序集,列表,集合。和他们相关的功能(推送到列表,获取列表,集合等。我现在面临的唯一问题是我的数据很大,我的大部分数据不需要在内存中,我想它们存储在磁盘上。

**我需要一个磁盘上数据库Redis的数据结构**

我读到卡桑德拉,但我不知道它是否支持有序集合,集合,列表,或者至少如果是的话,我无法找到方法来操纵它们的Redis的方式做。

感谢。

+0

不Redis的数据保存到磁盘?我的确。它确实是 – akonsu 2013-03-12 17:48:38

+1

。但是当它在内存中运行时,你不能超出内存的大小,我想在磁盘上存储超过内存大小的数据。 – Pacemaker 2013-03-12 18:30:11

+4

在基于磁盘的数据库系统中具有许多redis功能是不现实的,因为它们无法以与它们在内存中相同的方式进行存储。例如,你不能有O(1)的查询时间(例如,SQL中的索引简单选择查询通常是O(log(n)))。但是,许多您正在寻找的功能在许多SQL数据库中都可用 - 通常是基于磁盘的(一列有单列,主键是一组 - 许多数据库支持联合等)。 – 2013-03-13 09:24:13

回答

7

https://github.com/yinqiwen/ardb 另一个Redis的协议替代 与LMDB,RocksDB和性LevelDB基于磁盘的后端

不错基准

+0

对于生产env,ardb不稳定。 – yegong 2016-04-11 07:59:44

+0

@yegong你是怎么想出来的?我没有看到任何ardb没有准备就绪的情况。 – Peeyush 2017-02-07 12:59:25

+0

https://github.com/siddontang/ledisdb它是一个很好的基于磁盘的Redis替代品 – Slach 2017-04-28 07:09:16

-1

我鼓励你学习Cassandra,虽然它有一些类似于键/值和集的东西,但它与Redis非常不同。

我们目前通过Memcached协议将一个项目从Redis(我们使用sadd/spop)移动到TokyoCabinet/KyotoCabinet。对于当下的东西看起来不错,很快我将发表在GitHub上的lib - 会在这里:

https://github.com/nmmmnu

和项目将被称为简单的消息队列。它只会支持sadd/spop/sismember。同样在Python中,您将能够使用新对象而不是Redis对象,但仅限于这三个命令。

希望这会有所帮助。


更新2014.07:

这里是我谈论的项目。

https://github.com/nmmmnu/MessageQueue

它同时实现了Redis的和Memcached的协议。对于后端它使用内存ndb/mdb或berkeley分贝。

+0

我不明白为什么有人会做-1。 Cassandra几乎和redis一样,现在我的项目已经完成,你可以在这里看到它:https://github.com/nmmmnu/MessageQueue - redis和memcached协议都已经实现并且可以工作。当然,我的MessageQueue不能直接使用,但你可以获得协议类并完成剩下的工作。 – Nick 2014-07-17 13:32:54

+1

我低估了它,因为你声明没有这样的数据库,当有数据库时。实际上,甚至有协议兼容的直接替换。所以这不能离真相更远。我删除了downvote,请删除第一句话:) – 2014-07-17 16:40:23

5

有许多磁盘数据库与Redis的类似数据结构,甚至试图将下降,在Re​​dis的协议兼容的替换的Erlang实现的Redis的。

Is there something like Redis DB, but not limited with RAM size?”中有很好的建议 - 可惜社区认为这样的问题是无关紧要的。

特别是,SSDB是一个主动维护的类似Redis的磁盘数据库(但不直接兼容),Ardb是Redis的一个主动维护的替代品,用于将数据存储在磁盘上。免责声明:我还没有使用过他们(还)。

+0

感谢您的好答案。我看不出这些问题是如何脱离主题的。我发现redis的结构非常适合许多应用程序,因此必须拥有类似的磁盘数据库。 – Pacemaker 2014-07-17 10:06:49

+0

我是SSDB(类似redis的磁盘数据库)的作者,很多公司已经用SSDB取代了他们的redis实例,包括QIHU,BIDU。 – ideawu 2014-08-07 02:44:31