`
fantaxy025025
  • 浏览: 1249775 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

入门MongoDB,你需要注意的4个技巧 (摘)

 
阅读更多

 

我之所以喜欢MongoDB,主要是因为在动态语言中使用它是如此的简单,自然。到目前为止,我已经在两个项目(Encode 和 Sparrw)中使用过它了,虽然对这个选择我非常满意,但是有些问题我还是没有注意到,这些问题让我抓了好几个小时的头皮才解决。如果你有多台机器,然后为数据库多分配几台机器,那么有些问题可以迎刃而解,但是我的项目是运行在单个(虚拟)服务器之上的低流量Web应用程序。

 

(关于MongoDB,具体可以参考:http://www.mongodb.org/)

 

(关于作者的两个项目Encode 和 Sparrw,分别可以参考:http://en.co.de/和http://sparrw.com/)

 

这些问题都很简单,都是一些文档化的东西,不是什么Bug(当然,这要看你问谁了)。如果你读过所有的文档,那么这些问题可能你基本都见过了。我也是,但是在那之后,当再次遇到它们的时候,我就把文档中的内容都忘到脑后了,然后,我不得不再次修复它们。

 

使用64位的版本

 

32位的版本最多只能存储2.5GB的数据。当然,如果随便玩玩的话,这可能已经足够了。但是当你开始配置你的生产性(或用于演示的)系统的时候,记住要选择64位的版本,因为以后你无法通过“修复”来解决这个问题,你只能重新安装。

 

在另外一台机器上创建一个从数据库

 

如果你的MongoDB实例崩溃了(或者由于OOM挂掉了,或者整个系统都崩溃了),那么谁也无法保证你的数据会怎么样。你可以进行修复,但是这有点像运行fsck或买彩票——你永远都无法知道你将会得到什么结果。所以你应该创建一个从数据库(或者做一个“replica set”),并且,你应该把这个从数据库放到另外一个服务器上。如果一个VPS(Virtual Private Server 虚拟专用服务器)刚好可以满足你的(或其他人的)需要,那么这的确是一件麻烦事,但是,如果你珍惜你的数据的话,这是不可避免的。

 

让它更安全

 

在默认情况下,MongoDB不会进行身份验证,并且,它会监听所有的网络接口(对于你直接从他们的官方站点上获得的那个版本来说,这就是事实;各种Linux发行版(例如:Debian 和 Ubuntu)在默认情况下,都只绑定到127.0.0.1,这是十分明智的),这就是说,在世界上的任何地方,任何人都可以访问你的数据库。如果你在一个面向公众的服务器上使用它,那么这的确是一个问题。你可以把它设置成必须进行身份验证,也可以让MongoDB只监听localhost。我比较喜欢后者,因为在我的服务器上,我是唯一一个用户。

 

总是使用getLastError

 

如果你不需要闪电般的速度,花一点时间来确保你的变更对于这个数据库来说是OK的,并且对数据进行修改并没有造成什么问题绝对是值得的——如果存在什么问题的话,那么应该在你的应用程序中把它们记录下来,让你知道数据库发生了一些故障。或者,如果你确定你需要使用getLastEror(),那么至少不要混合使用,也不要在同一个集合上使用它。MongoDB无法确保命令会按照指定的顺序来执行。在我的测试代码中,我做了一个“异步的”remove()调用(也就是说,我无需等待这个函数执行完毕),然后,在remove()愉快地移除它们(可能已经把它们全部移除,也可能只是移除了其中的一部分,还可能什么也没有移除,这主要取决于竞争)以前,我插入了一些新的条目。这让我困惑了好几个小时。

 

有许多在线的文档,在各种论坛,也可以找到很多这方面的信息,如果你能通过更简洁的方式获得这方面的信息,那也不错。对于这方面来说,我发现《MongoDB: The Definitive Guide book》 和 10gen videos都很有帮助——例如,deployment strategies视屏对于入门来说,是绝佳的视频教程。

 

来源:http://club.topsage.com/thread-2358393-1-1.html

 

 

I

I

I

-

I

I

I


 

分享到:
评论

相关推荐

    MongoDB入门指南.pdf

    MongoDB入门指南.pdf

    MongoDB教程基础入门

    教程名称:MongoDB教程基础入门 课程目录:【】MongoDB教程基础入门-代码【】MongoDB教程基础入门01第一讲上【】MongoDB教程基础入门02第一讲下【】MongoDB教程基础入门03第二讲上【】MongoDB教程基础入门04第二讲...

    mongodb入门到精通

    mongodb入门到精通,零基础学习mongodb,mongodb入门到精通,零基础学习mongodb

    MongoDB基础入门到高级进阶

    MongoDB是一个开源、高性能、无模式的文档型数据库,是NoSQL数据库产品中的一种。它的出现主要应对“三高”等问题,它可以解决需要存储数据量大、高并发读写、高可用的现实问题,适用于社交朋友圈、游戏积分、物流...

    MongoDB入门指南

    《MongoDB入门指南》是一个快速入门MongoDB的教程,它以MongoDB的3.0版本进行说明。本教程安装的是MongoDB Windows 64位版本,目的只是为了让读者快速的入门MongoDB,快速理解和操作MongoDB。在开发或生产中强烈要求...

    mongoDB入门到精通.txt

    mongoDB入门到精通.txt

    MongoDB入门.pdf

    非常使用的文档,可以入门 可以做工具书

    MongoDB 入门教程笔记

    MongoDB 入门教程笔记

    MongoDB入门到精通

    MongoDB入门到精通,图书文档,喜欢就下载

    MongoDB入门教程 + 架构简析 + java使用MongoDB的简单程序

    MongoDB入门教程 + 架构简析 + java使用MongoDB的简单程序

    MongoDB入门教程及用例

    1.mongodb-win32-i386-2.4.8.zip 由于大小限制,请到官网下载http://www.mongodb.org/downloads 2.MongoDB开发使用手册.docx ...4.MongoDB入门经典.doc 5.MougoTest.rar(MongoDB入门经典.doc用例)

    2020年最新MongoDB 4.0专讲从入门到精通视频教程.txt

    day4:教你学会MongoDB聚合操作 day5:索引的特性及应用 day6:MongoDB实例搭建仓位管理API day7:数据模型优化及设计 day8:复制集介绍及演练 day9:海量数据分片 day10:数据库认证与授权介绍及演练 day11:MongoDB数据库...

    mongodb入门

    mongodb入门小书,简单快速高效!可以看看,快速了解mongodb的基本用法!

    MONGODB学习总结入门篇.pdf

    MONGODB学习总结入门篇.pdf

    MongoDB入门到精通 中文资料

    Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。

    MongoDB入门经典

    资源名称:MongoDB入门经典内容简介:本书采用直观、循序渐进的方法,讲解了如何设计、实施和优化NoSQL数据库,如何存储和管理数据,以及如何执行数据分片和复制等任务。全书共24章。适合对NoSQL以及MongoDB感兴趣的...

    mongodb说明介绍快速入门

    mongodb说明介绍快速入门 mongodb说明介绍快速入门 mongodb说明介绍快速入门

    mongodb需要的jar

    mongodb需要的jar

    mongoDb入门

    软件安装的一些指南 很生动易懂,还有一些入门的技巧介绍

Global site tag (gtag.js) - Google Analytics