我正在开发一个Web应用程序,需要很多用户处于相同的“Universe”中,在那里会发生很多频繁的查询:
我相信我的节点可以有足够的内存供所有当前在线用户使用。这就是我最初考虑Redis的原因。但是,我认为Redis不适用于此,因为:
Cassandra似乎解决了这些问题。
但是,Cassandra是否也适合我经常查询?
答案 0 :(得分:2)
Cassandra优化了对读取的写入(读取与写入相比是昂贵的),但它仍然可以同时维持高读取和写入吞吐量。
使用正确的列族结构,您应该能够在高频下执行您想要的操作,具体取决于您的群集的大小。
就我个人而言,我使用Redis来缓存大部分信息,并且只在缓存未命中时从Cassandra中读取。
答案 1 :(得分:2)
Cassandra绝对是处理写入的绝佳解决方案,但如果你可以告诉你的读取负载,那么你肯定可以期待一个精确的答案,但只要你有足够的RAM,通常读取也很好。
您描述的用户案例似乎包含许多联接..
您是否有足够的理由在开发阶段采用NoSQL解决方案?因为Cassandra基本上是一种需要高可扩展性的设置解决方案,但是以非规范化为代价并且在很大程度上牺牲了连接。换句话说,您需要更高的磁盘空间但CPU需求更低。
或者您已经完成了数据库设计和明显的方案(虽然Cassandra不受架构限制),它可以满足您的所有查询,尤其是读取查询要求? (它的v.imp)