我即将设计一个具有以下要求的数据库解决方案:
我刚接触redis - 也就是说这对我来说实际上是第一天......但就能够设置一些从属数据库而言它们似乎很合适,因此它们只在内存中运行。
但是......就我生成报告所需的各种类型的数据而言...我并不是以我们可能需要的方式查询redis是多么容易。从我到目前为止阅读的那些小,您只能基于键进行查询...而不是基于值。我知道你可以创建哈希值和二级索引......但是......我想知道我是否应该考虑使用redis和mongo。 就改变" schema"而言,Mongo是一件轻而易举的事。动态文件(这对我们有利,因为需求不断变化),您可以通过多种方式查询文档。
建议的物理架构
主数据库服务器
此服务器将运行mongodb作为"报告"库。它也会有一个 Redis数据库,它将只包含最常查询和编写的信息。例如:
Redis Master小部件查询数据库
MongoDB小组件报告和管理数据库
Redis从属服务器
这些服务器只包含Redis小部件数据库的内存副本。这些服务器将是只读的。 不会有任何报告。
注释:
当我讨论这个设计/架构时,会想到这些问题和想法:
你如何将mongodb和redis db保留在" master'服务器同步?我想第一次写入Redis服务器......只有成功,才能填充mongo db。如果他们不同步会产生什么影响?如何解决?
为什么不直接使用mongodb? Mongodb也可以在内存数据库中做...虽然我还没有测试过它。从我读过它"感觉就像"与mongodb相比,更多的人一直在使用redis作为内存。但我可能是错的。
我想得到一些关于这个想法的反馈...... 我是不是太复杂了?我应该弄清楚如何在mongodb中设置复制,主持久数据到磁盘..并且从机只在内存中运行?或者我应该继续走这条路,在那里我评估试图结合最好的工具?
感谢。