4

假设我需要集中执行以下操作:
put(key, value)
其中 value 是 <column name, column value> 的映射。
我对 NoSQL 的了解并不长,我所知道的是 Cassandra 插入(符合 Bigtable 论文中定义的 api)和 Redis “HSET” 命令都可以做到这一点。但是这两种方式的优缺点是什么?那里有任何性能和可扩展性差异吗?

编辑 :

我的需求类似于 IM 服务器 --- 我需要存储会话数据,并且我希望它们都在内存中,以便轻松实现低延迟。会议最多持续2小时。尚无需要考虑的一致性要求。并且磁盘仅用于故障转移。数据丢失并不可怕。我需要的是更低的延迟。每秒操作数——越多越好。

4

1 回答 1

14

redis 和 cassandra 都可以用作键值存储。区别在于速度、规模和可靠性。

Redis 最适合作为单个服务器,其中整个数据集驻留在内存中。

Cassandra 可以处理不适合内存的数据集,以及不适合单个机器的数据集。作为分布在多台机器上的一部分,cassandra 更加可靠。Cassandra 可以处理机器故障、重建机器、在需要时增加集群容量。

因为 redis 完全在内存中,并且读/写由单台机器提供(单个 cassandra 写入通常会与多台机器对话),所以 redis 很可能会更快。

如果您的主要目标是速度,并且您不需要可靠地存储数据,并且您的数据集适合内存,那么 redis 可能是一个更好的解决方案。

于 2012-09-29T14:31:31.870 回答