假设我需要集中进行以下操作:
放置(键,值)
其中 value 是
我了解 NoSQL 的时间并不长,我所知道的是 Cassandra insert(符合 Bigtable 论文中定义的 api)和 Redis“HSET”命令都可以做到这一点。但是这两种方式的优缺点是什么?那里有任何性能和可扩展性差异吗?
编辑:
我的要求类似于 IM 服务器 --- 我需要存储 session 数据,并且我希望所有这些数据都在内存中,以便可以轻松实现低延迟。 session 最多持续 2 小时。尚无一致性要求需要考虑。磁盘仅用于故障转移。数据丢失并不可怕。我需要的只是更低的延迟。每秒操作数——越多越好。
最佳答案
redis和cassandra都可以作为键值存储。区别在于速度、规模和可靠性。
Redis 最适合用作单个服务器,其中整个数据集驻留在内存中。
Cassandra 可以处理内存中放不下的数据集,以及单台机器上放不下的数据集。作为分布在多台机器上的一部分,cassandra 更可靠。 Cassandra 可以处理机器故障、重建机器、在需要时向集群添加容量。
因为 redis 完全在内存中,并且读/写由一台机器提供服务(单个 cassandra 写入通常会与多台机器通信),redis 很可能会更快。
如果您的主要目标是速度,并且不需要可靠地存储数据,并且您的数据集适合内存,那么 Redis 可能是更好的解决方案。
关于nosql - Redis 与 Cassandra(Bigtable 数据模型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12617782/