And*_*rey 40 database bigdata nosql redis
我正在寻找符合这些标准的数据库:
以下是我使用此类数据库的过程:我们有一个分析群集,每4-6小时可生成100M记录(50GB)数据.数据是"键 - 数组[20]".这些数据需要通过前端系统分发给用户,每秒的速率为1-10k.平均而言,只有约15%的数据被请求,其余部分将在生成下一个数据集时在4-6小时内重写.
我尝试了什么:
所以问题是:有什么像Redis,但不限于RAM大小?
FGR*_*eau 25
是的,Redis有两种替代方案,不受RAM大小限制,同时保持与Redis协议兼容:
Ardb(C++),复制(Master-Slave/Master-Master):https://github.com/yinqiwen/ardb
兼容redis协议的持久存储服务器,支持LevelDB/KyotoCabinet/LMDB作为存储引擎.
Edis(Erlang):http://inaka.github.io/edis/
Edis是Redis编写的兼容协议的服务器替代品,用Erlang编写.当持久性比将数据集保存在内存中更重要时,Edis的目标是成为Redis的替代品.Edis(目前)使用Google的leveldb作为后端.
为了完整起见,这里是另一个数据结构数据库:
Hyperdex(字符串,整数,浮点数,列表,集合,地图):http://hyperdex.org/doc/latest/DataTypes/#chap:data-types
HyperDex是:
- 快速:与其他键值存储相比,HyperDex具有更低的延迟,更高的吞吐量和更低的差异.
- 可扩展:HyperDex随着更多机器添加到系统而扩展.
- 一致:HyperDex保证了基于密钥的操作的线性化.因此,read始终返回插入系统的最新值.不只是"最终",而是立即和永远.
- 容错:HyperDex会自动复制多台计算机上的数据,以便在应用程序确定的限制范围内发生并发故障不会导致数据丢失.检索:
- HyperDex可以高效查找辅助数据属性.
- 易于使用:HyperDex为各种脚本和本地语言提供API.
- 自我维护:HyperDex是自我维护的,几乎不需要用户维护.
ide*_*awu 21
是的,SSDB(https://github.com/ideawu/ssdb),它与Redis的API非常相似:http://www.ideawu.com/ssdb/docs/php/
SSDB支持hash,zset.它使用leveldb作为存储引擎,大多数数据存储在磁盘上,RAM用于缓存.在我们的带有300GB数据的SSDB实例上,它只使用800MB RAM.
如今,您可以轻松找到 RAM 超过 100 GB 的服务器来托管单个实例,或者您可以对数据进行分片并使用多个 RAM 较少的服务器。使用 Redis(在 RAM 中)存储 100 GB 并不是真正的问题。
现在,如果您确实想尝试不受 RAM 大小限制的 Redis 前沿克隆,可以选择 NDS(作者:Matt Palmer):
请注意,NDS 的存储后端已从京都橱柜转移到 LMDB(一个非常好的软件包,也为 OpenLDAP 提供支持),这正是因为删除密钥后的空间回收问题。
其他与 Redis 不兼容的解决方案也可能满足您的需求:例如 Couchbase 和 Aerospike 可以轻松支持您的吞吐量。如果您有足够的节点,Cassandra 和 Riak 可能也能正常工作。