redis vs mongo - 从master复制到运行内存数据库的slave

时间:2016-08-22 14:10:41

标签: mongodb memory redis replication database-replication

我知道redis是与mongodb不同的架构。通过阅读此处和其他网站上的其他帖子,看起来redis适用于没有那么多数据的情况...... Mongo似乎在处理大量数据时会发光。 我也知道Mongo是无架构的。

我需要构建一个允许我的解决方案:

  • 有一个“主”数据库,将持久保存到磁盘
  • 有n个“slave”数据库......只能从RAM
  • 运行
  • 我喜欢mongo如何存储json文档 - 不确定我是否可以在redis中完成类似的事情。
  • 如果任何节点离线(包括主节点),其余参与者“只是继续工作”。一些从站将在具有非常高延迟问题的网络部分上运行。

我目前正在阅读Mongo和Redis复制文档,但没有遇到任何描述此特定用例的内容。 任何见解都将不胜感激。

编辑1

我需要能够根据值提取数据。例如,我想说,我在Redis中创建了以下数据:

127.0.0.1:6379> set users:leto '{"name": "leto", "planet": "dune", "likes": ["spice"]}'
OK
127.0.0.1:6379> get users:leto
"{\"name\": \"leto\", \"planet\": \"dune\", \"likes\": [\"spice\"]}"

有时,我需要根据值提取数据...因此找到所有将“沙丘”设置为“行星”值的用户。这种类型的查询是否可以在redis中进行?

1 个答案:

答案 0 :(得分:0)

你无法真正比​​较Redis和MongoDB。

Redis就像MemCache,但可以存储在磁盘上。 Redis存储原始数据,如字符串,字符串列表......不是对象。如果你想要商店对象,你必须先将其字符串化。

您无法仅根据密钥名称请求数据。

如果您不需要磁盘上的持久数据,Redis也可以这样做。

如果您只想要一个主服务器,但是在从服务器上进行复制,如果主服务器已关闭,则使用从服务器,您必须将Redis与Sentinel一起使用。

为了帮助您,我需要知道您需要存储的数据类型吗? 你能支持数据分区吗? 你需要回滚(我认为没有)? 节点上完全数据存储的大小是多少?

Redis的一个很好的用例是CQRS。 Redis可以用于R。

此致

修改

  

有时,我需要根据值提取数据...因此找到所有将“沙丘”设置为“行星”值的用户。这种类型的查询是否可以在redis中进行?

不,你不能查询。

如果您有hudge插入数据,请使用Cassandra。