mongodb的安装和基础知识

一.nosql和mongodb的介绍

1).优缺点
 1.优点----高并发读写,海量数据存储,高可扩展性,高可用性
 2.缺点----缺乏事务一致性,缺乏读写实时性,不支持复杂查询
 
 2).nosql数据库类型
类型                                                                        简介 
key-value                      Key 指向 Value 的键值对,通常用hash table来实现 
                                       产品:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 
 
列式数据库                     以列簇式存储,将同一列数据存在一起   实体对应行,实体内部的内嵌实体对应列,内嵌实体属性对应列属性为一个列蔟比如
                                         行:张三   列:address:省---value(安徽)   address:乡镇--->大张庄    列二:info:姓名--->张三  info:性别--->男
                                         图示:
                                          
                                         产品:Cassandra, HBase, Riak 

文档型数据库                 Key-Value对应的键值对,Value为结构化数据 
                                         产品:CouchDB, MongoDB 

图结构数据库                  以“图”为基本存储模型    存在节点关系属性等,将实体直接关系化,实体属性为节点属性实体为对应的节点
                                          在一个图中包含两种基本的数据类型:Nodes(节点) 和 Relationships(关系)。Nodes 和 Relationships
                                         包含key/value形式的属性。Nodes通过Relationships所定义的关系相连起来,形成关系型网络结构
                                         图示:
                                         
                                
                                          产品:Neo4J, InfoGrid, Infinite Graph 
3).mongodb的命名规范
数据库 
•任意UTF-8字符串(比如:网
鸟); 
•不能是空字符串; 
•不得包含以下字符: (空格) 、 
.、$、/、\、\0; 
•长度不得超过64字节; 
•保留字:admin、local、
config等;
 
集合   
•任意UTF-8字符串(比如:网
鸟); 
•不能是空字符串; 
•不能包含\0 、 $; 
•不能以system.开头; 

文档 
•任意UTF-8字符串(比如:网
鸟); 
•不能是空字符串; 
•不能包含\0、 $; 
•不能以_开头;
 
4).mongodb的基本数据类型

null                                                   空
bool                                                true、false; 
数字                                                仅支持64位浮点数,其他类型的数字会自动转化为此格式; 
字符串                                            支持UTF-8字符集; 
日期                                                存储标准纪元开始的毫秒数,不含时区; 
regex                                              符合JavaScript语法的正则表达式; 
code                                               任何JavaScript代码; 
binary                                              可存储任意字节数的字节数组,但在Shell中无法使用; 
数组                                                 对象集合或列表在MongoDB可以被存储为数组; 
嵌套文档                                         一个文档可以包含另外一个文档; 
ObjectId                                           _id是mongodb每个文档中默认的唯一名称,当插入时没有指定_idmongodb会自动创建

注:objectid结构:time+machine+pid_inc 保证同一台生成的值都是唯一的

二.mongodb的安装

1.下载http://www.mongodb.org/downloads 最好选择偶数版本,默认端口为27017。推荐运行在64位平台,因为MongoDB在32位模式运行时支持的最大文件尺寸为2GB。

2.安装(来源于网络)

1.解压mongodb-win32-i386-1.8.1.zip ,创建路径C:\Program Files\mongodb ,将解压后的Bin文件Copy to 此文件夹下
2.C:\Program Files\mongodb 下建立Data文件夹 C:\Program Files\mongodb\data ,然后分别建立db,log两个文件夹,至此mongodb下有以下文件夹
C:\Program Files\mongodb\bin
C:\Program Files\mongodb\data\db
C:\Program Files\mongodb\data\log
在log文件夹下创建一个日志文件MongoDB.log,即C:\Program Files\mongodb\data\log\MongoDB.log
完成以上工作后,你为奇怪为什么要建立这些文件夹(因为,Mongodb安装需要这些文件夹,默认安装是不用创建,但是文件都为安装到C:\data\下)

3.windows service方式安装

C:\Program Files\mongodb\bin>mongod --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log" --install --serviceName "MongoDB"

这里db为数据库安装的文件夹,MongoDB.log就是开始建立的日志文件,--serviceName "MongoDB" 服务名为MongoDB

4.服务已经安装成功,运行

>NET START MongoDB   (开启服务)

>NET stop MongoDB   (关闭服务)

> C:\Program Files\mongodb\bin>mongod --dbpath "C:\Program Files\mongodb\data\db" --logpath "C:\Program Files\mongodb\data\log\MongoDB.log" --remove --serviceName "MongoDB"      (删除服务)

运行bin文件夹下mongo.exe 客户端即可操作了


三,mongodb的集群方式(来源于网络)

mongodb的集群
1.主从
 <1>  数据备份。
 <2>  数据恢复。
 <3>  读写分离。


第一步:我们把mongodb文件夹放在D盘和E盘,模拟放在多服务器上。
第二步:启动D盘上的mongodb,把该数据库指定为主数据库,其实命令很简单:>mongodb --dbpath='XXX' --master,
        端口还是默认的27017.
第三步:同样的方式启动E盘上的mongodb,指定该数据库为从属数据库,命令也很简单,当然我们要换一个端口,比如:8888。
        source 表示主数据库的地址。
        >mongod --dbpath=xxxx --port=8888 --slave --source=127.0.0.1:27017
第四步:从图中的红色区域我们发现了一条:“applied 1 operations"这样的语句,并且发生的时间相隔10s,也就说明从属数据库每10s
        就向主数据库同步数据。
   注:如果前期建立时候未配置主服务器,也可以使用命令在后期配置主服务器。
       db.sources.insert({"host":"127.0.0.1:27017"})
       读写分离:
            在默认的情况下,从属数据库不支持数据的读取,但是没关系,在驱动中给我们提供了一个叫做“slaveOkay"来让我们可以显示的读取
            从属数据库来减轻主数据库的性能压力
2.副本集
  <1>:  该集群没有特定的主数据库。
  <2>:  如果哪个主数据库宕机了,集群中就会推选出一个从属数据库作为主数据库顶上,这就具备了自动故障恢复功能,很牛X的啊。
       
3.分片
   mongodb采用将集合进行拆分,然后将拆分的数据均摊到几个片并路由每次的操作上的一种解决方案

 
    
    客户端操作:代表客户端,客户端肯定说,你数据库分片不分片跟我没关系,我叫你干啥就干啥,没什么好商量的。
     mongos: 首先我们要了解”片键“的概念,也就是说拆分集合的依据是什么?按照什么键值进行拆分集合....
              好了,mongos就是一个路由服务器,它会根据管理员设置的“片键”将数据分摊到自己管理的mongod集群,数据
              和片的对应关系以及相应的配置信息保存在"config服务器"上。
    mongod:   一个普通的数据库实例,如果不分片的话,我们会直接连上mongod。

http://www.cnblogs.com/huangxincheng/archive/2012/02/21/2361205.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值