nosql - Redis 与 Cassandra(Bigtable 数据模型)

标签 nosql redis cassandra bigtable

假设我需要集中进行以下操作:
放置(键,值)
其中 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/

相关文章:

android - 扁平化 Firebase 中的数据以反射(reflect) Android 应用中的模型

php - php 在使用 redis 存储 session 时如何处理被破坏的 session ?

cassandra - 如何决定 Cassandra 主键中的聚类列?

写入 Cassandra 列族时的 Hadoop MR 作业在 "InavlidRequestException(Column name must not be empty)"上失败

nosql - Openstack 上的 Couchbase XDCR

MongoDB 建议请求

node.js - 检查游戏状态并向连接的客户端发送套接字的正确方法是什么?

python - 如何从 python 和 rust 存储和读取 redis 中的公共(public)数据?

cassandra - 启动 Cassandra 时读取保存的缓存和系统表时出错

sql - 轻量级数据库(SQL 或 NoSQL)