我目前正在为我的应用程序使用Redis,它的功能非常适合我的应用程序(列表,集,排序集等)。
我的应用程序在很大程度上依赖于排序集,列表和集合。和他们相关的功能(推送到列表,获取列表,集合的联合等。我现在面临的唯一问题是我的数据很大,我的大部分数据都不需要在内存中,我想要将它们存储在磁盘上。
**我需要一个带有redis数据结构的 on-disk 数据库**
我读过Cassandra,但我不确定它是否支持排序集,集,列表。或者至少如果确实如此,我找不到像Redis那样操纵它们的方法。
感谢。
答案 0 :(得分:7)
https://github.com/yinqiwen/ardb 另一个REDIS协议替代品 使用LMDB,RocksDB和LevelDB基于磁盘的后端
不错的基准
答案 1 :(得分:5)
有许多磁盘数据库具有类似Redis的数据结构,甚至尝试与Redis进行协议兼容的替换。
" Is there something like Redis DB, but not limited with RAM size?" - 可惜社区认为这些问题不合时宜。
特别是,SSDB是一个主动维护的类Redis磁盘数据库(但不直接兼容),Ardb是Redis的主动维护替代品,用于存储磁盘上的数据。免责声明:我还没有使用它们中的任何一个。
答案 2 :(得分:4)
尝试基于leveldb http://inaka.github.io/edis/
的Edis - Erlang实现Redis答案 3 :(得分:0)
我鼓励你学习Cassandra,虽然它有一些类似于键/值和集合的东西,但它与Redis非常不同。
我们目前正通过Memcached协议将一个项目从Redis(我们使用sadd / spop)移动到TokyoCabinet / KyotoCabinet。目前看起来不错,很快我将在github上发布lib - 将在这里提供:
和项目将被称为简单消息队列。它只支持sadd / spop / sismember。同样在Python中,您将能够使用新对象而不是Redis对象,但仅限于这三个命令。
希望这有帮助。
更新2014.07:
这是我所说的项目。
https://github.com/nmmmnu/MessageQueue
它实现了Redis和Memcached协议。对于后端,它使用内存ndb / mdb或berkeley db。