MongoDB简介
MongDB是一个高性能,开源,无模式的文档型NosQL数据库。
主要功能特性:
1.文件存储格式BSON(一种json的扩展)
2.模式自由
数据格式不受限了表的结构
3.支持动态查询
4.支持完全索引
5.支持复制(其主从复制)和故障恢复
6.使用高效的二进制数据存储,包括大型对象
7.自动处理碎片,以支持云计算层次的扩展。
8.支持Java、Ruby、Python、C++、PHP等多种语言
9.内部支持JavaScript
MongoDB的优势
1.查询速度快
2.高并发。可以达到2万个并发。
3.高容量。支持10TB意思的数据量
MongoDB使用场景
1.网站数据
2.缓存
3.大尺寸、低价值的数据
4.高伸缩的场景
5.用于对象以及Json数据存储
MongoDB限制
1.在32位操作系统上,不支持大于2.5G的数据
2.单个文件大小限制16M
3.高度事务的系统
4.传统商业智能应用
RDBMS vs NoSQL
RDBMS
– 高度组织化结构化数据
– 结构化查询语言(SQL) (SQL)
– 数据和关系都存储在单独的表中。
– 数据操纵语言,数据定义语言
– 严格的一致性
– 基础事务
NoSQL
– 代表着不仅仅是SQL
– 没有声明性查询语言
– 没有预定义的模式
-键 – 值对存储,列存储,文档存储,图形数据库
– 最终一致性,而非ACID属性
– 非结构化和不可预知的数据
– CAP定理
– 高性能,高可用性和可伸缩性
下表列出了 RDBMS 与 MongoDB 对应的术语:
RDBMS | MongoDB |
---|---|
数据库 | 数据库 |
表格 | 集合 |
行 | 文档 |
列 | 字段 |
表联合 | 嵌入文档 |
主键 | 主键 (MongoDB 提供了 key 为 _id ) |
数据库服务和客户端 | |
Mysqld/Oracle | mongod |
mysql/sqlplus | mongo |
MongoDB安装
1.下载安装:
cd /usr/local/src/ wget -c https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.9.tgz [[email protected] src]# tar -zxvf mongodb-linux-x86_64-rhel62-3.2.9.tgz -C /usr/local/ [[email protected] local]# mv mongodb-linux-x86_64-rhel62-3.2.9 mongodb
2.建数据库存放的位置和日志文件
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
mkdir -p /usr/local/mongodb/data/db mkdir -p /usr/local/mongodb/logs touch /usr/local/mongodb/logs/mongodb.logs
MongoDB 的可执行文件位于bin目录下,所以可以将其添加到 PATH 路径中:
export PATH=<mongodb-install-directory>/bin:$PATH <mongodb-install-directory> 为你 MongoDB 的安装路径。如本文的 /usr/local/mongodb. 如:export PATH=/usr/local/mongodb/bin:$PATH
3.在MongoDB安装目录下的bin下使用mongod启动MongoDB
[[email protected] mongodb]# ./bin/mongod --dbpath=data/db/ --logpath=logs/mongodb.logs --logappend --port=27017 --fork #mongodb默认端口27017,可以通过port来指定端口号
4.设置开机自启动
将mongodb启动项目追加入rc.local保证mongodb在服务器开机时启动
echo "/usr/local/mongodb/bin/mongod --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongodb.logs –logappend --port=27017" >> /etc/rc.local
5.使用配置文件启动——这样就不用在./mongod后面加一堆参数了,在mongodb的目录下创建mongodb.conf配置文件
[[email protected] mongodb]# vim mongodb.conf port=27017 dbpath=/usr/local/mongodb/data/db logpath=/usr/local/mongodb/logs/mongodb.logs logappend=true fork=true directoryperdb=true maxConns=1000 [[email protected] mongodb]# ./bin/mongod -f mongodb.conf
6.MongoDB命令连接服务器的MongoDB数据库
使用默认端口连接MongoDB
[[email protected] bin]# mongo 192.168.1.100
连接MongoDB并指定端口
[[email protected] bin]# mongo 192.168.1.100:27017
连接到指定的MongoDB数据库
[[email protected] bin]# mongo 192.168.1.100:27017/testDB
指定用户名和密码连接到指定的MongoDB数据库
mongo 192.168.1.200:27017/testDB -u user -p password
mongo --host 1.1.1.1:3717 -u root -p 密码 --authenticationDatabase admin
部分参数解释:
--dbpath 数据库路径(数据文件) --logpath 日志文件路径 --master 指定为主机器 --slave 指定为从机器 --source 指定主机器的IP地址 --pologSize 指定日志文件大小不超过64M.因为resync是非常操作量大且耗时,最好通过设置一个足够大的oplogSize来避免resync(默认的 oplog大小是空闲磁盘大小的5%)。 --logappend 日志文件末尾添加 --port 启用端口号 --fork 在后台运行 --only 指定只复制哪一个数据库 --slavedelay 指从复制检测的时间间隔 --auth 是否需要验证权限登录(用户名和密码) --bind_ip 绑定的IP --port 绑定的端口
至此一个单机版的MongoDB就安装完成了,就可以进行简单的操作了
#显示当前数据库服务器上的数据库 > show dbs; #切换/创建数据库 > use yourDB; #显示数据库中所有的集合(collection) > show collections #查看集合中的字段名 > db.集合名.find() #查看当前使用的数据库 > db; 或者 >db.getName(); #显示当前db状态 > db.stats(); #当前db版本 >db.version(); #查看当前db的链接机器地址 > db.getMongo(); #显示当前所有用户 >show users;
可视化工具:mongobooster
参考文档:http://www.runoob.com/mongodb/mongodb-linux-install.html
http://blog.csdn.net/piaocoder/article/details/52384756
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/9199.html