带有 NoSQL 的 ASP.NET

Posted

技术标签:

【中文标题】带有 NoSQL 的 ASP.NET【英文标题】:ASP.NET with NoSQL 【发布时间】:2010-09-30 17:54:55 【问题描述】:

阅读过一些 NoSQL 概念和 MongoDB 和 CouchDB 文章。似乎它们将为构建可扩展的 Web 应用程序提供更多空间。但是需要弄清楚它们是否会像 SQL Server 那样支持以下功能?

    是否支持数据库镜像? NoSQL 数据库有大小限制吗? 在社交网站上忽略 NoSQL 会更好吗? 在 NoSQL 上运行作业(如 Sql Agent 作业)有哪些替代方法?

【问题讨论】:

【参考方案1】:

这里的另一组回应:

是否支持数据库镜像?

基本上每个 NoSQL 数据库都会有某种形式的数据库镜像。 MongoDB 支持主/从和副本集(具有自动故障转移的镜像集)。一些 NoSQL 数据库,例如 Cassandra 和 HBase,基本上已经“嵌入”了数据复制。

NoSQL 数据库有大小限制吗?

没什么大不了的。这些数据库旨在水平扩展,因此如果 NoSQL 数据库有很大的大小限制,它不会持续很长时间。这里的例外是 MongoDB 在 32 位系统上具有 2GB 的文件限制(如果您仍在使用 32 位服务器)。 Mongo、Couch 等都有存储数十亿“文档”的例子。所以你可能已经被覆盖了。

在社交网站上忽略 NoSQL 会更好吗?

没有。所有主要的社交网站都有某种形式的 SQL。从长远来看,两者确实都有用(串联)。我正在我现在的办公室“这里和那里”添加 Mongo 的片段,但我永远不会完全取代我的 SQL 数据库。我喜欢认为 NoSQL 非常适合“事务”,而 SQL 非常适合“分析”。

在 NoSQL 上运行作业(如 Sql Agent Jobs)有哪些替代方法?

至少,每个 NoSQL 系统都具有从命令行运行脚本命令的能力。以 MongoDB 为例,您实际上组装了一个 javascript 文件并运行如下内容:./mongo 1.2.3.4/database my_script.js。使用 cron 或计划任务,很容易让这些作业运行。

事实上,要对这些作业运行报告,您通常需要安排 map-reduce,因此您肯定希望熟悉从命令行运行任务。

但是,如果您习惯了 SQL 代理,您将会感到失望。大多数 NoSQL 数据库不到 2 年的历史,而且工具还没有出现。并不是说它永远不会存在,只是对于大多数这些产品来说,像 SQL Agent 这样优秀的产品还有很长的路要走。

【讨论】:

【参考方案2】:

对于 Mongodb,这就是我所知道的。

1 - 你有你的传统主/从和replica sets。

2 - 在 64 位上,我认为没有限制。在 32bit 上,我相信数据大小最大可以是 2.5g

3 - 取决于您的需求。许多社交网站仍然使用 mysql 或 postgresql 以及 NoSQL。许多初创公司都在考虑仅部署 NoSQL。如果是电子商务并且您需要 ACID 或事务,请坚持使用 RDBMS。

4 - 你的意思是备份服务器上的数据?我认为有传统的导出/导入工具。我想您可以编写一个脚本来完成所有这些工作,然后从文件系统中进行代理备份。

【讨论】:

以上是关于带有 NoSQL 的 ASP.NET的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET入门教程(经典)

ASP.NET入门教程(经典)

kindEditor

KindEditor

KindEditor编辑器

编辑器KindEditor的使用