用于缓存二进制数据的键/值分布式数据库

时间:2013-09-05 18:04:12

标签: nosql key-value-store aerospike

我正在寻找用于缓存小二进制对象的分布式kv数据库,例如使用TTL的图像。大小限制不是问题,因为我计划分割每个对象,以最小化延迟。我需要C#和Java驱动程序,在不久的将来我还需要C ++驱动程序。像CouchDb和Redis这样的数据库似乎是基于文档的。 Mongo支持二进制数据并且有很好的文档记录,但它是持久性的,我不确定它在吞吐量方面是否可扩展,Cassandra也是持久的,我不确定C ++ / C#驱动程序的质量+由于删除而需要不断修复。

Aerospike是商业的,也是基于文件的。也许Riak有内存或leveldb后端(任何人都在使用它的C ++客户端?)

3 个答案:

答案 0 :(得分:4)

由于以下原因,

Aerospike对您来说是完美的解决方案:

提供所有用例

  1. 基于键值。
  2. 从3.0版本开源。早先最多2个节点的Aerospike集群是开源的,并且支付了3个或更多节点集群。
  3. 可以在没有持久性的缓存模式下使用。
  4. 支持LRU和TTL。
  5. 可以保存二进制数据。
  6. 选择Aerospike的原因

    1. 吞吐量:优于Mongo / Couchbase或任何其他NoSQL解决方案。见http://www.aerospike.com/benchmark/。 亲自看到它可以正常工作,同时有超过300k读取TPS和100k写入TPS。
    2. 使用RIPEMD160自动高效地进行数据分片,数据重新平衡和数据分发。
    3. 故障转移和/或网络分区时高度可用的系统。

答案 1 :(得分:2)

Couchbase(不是CouchDB)对你来说是个不错的选择。高度可扩展,易于理解,使用和扩展。它是一个从memcached发展而来的KV文档数据库,它还通过Map / Reduce提供二级索引,很快就会有很多新东西。您仍然可以使用memcached协议/库或使用Couchbase SDK加速它。

答案 2 :(得分:0)

你看过Pivotal GemFire Pivotal GemFire是一个分布式数据管理平台,提供动态可扩展性,高性能和类似数据库的持久性。

Pivotal GemFire还有C ++,C#和Java

的客户端驱动程序