1. MongoDB介绍
MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是 像关系型数据库(MySQL)的非关系型数据库。 它支持的数据结构非常松散,是一种类似于 JSON 的 格式叫BSON,所以它既可以存储比较复杂的数据类型,又相当的灵活。
MongoDB中的记录是一个文档,它是一个由字段和值对(field:value)组成的数据结构。MongoDB文档类似于JSON对象,即一个文档认 为就是一个对象。字段的数据类型是字符型,它的值除了使用基本的一些类型外,还可以包括其他文档、普通数组和文档数组。
2. Redis和MongoDB的区别
Redis,键值对数据库,支持多种数据类型,数据存在内存,可以rdb、aof持久化到硬盘
mongodb文档数据,可以存放xml、json、bson类型系那个的数据。
3. 应用场景
应对“三高”:高并发、高可用
适合场景:事件记录、内容管理或者博客平台,比如评论系统。
具体的应用场景如:
1)社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。 2)游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问。 3)物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将 订单所有的变更读取出来。
4)物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。 5)视频直播,使用 MongoDB 存储用户信息、点赞互动信息等。
4. 什么时候选择MongoDB?
在架构选型上,除了上述的三个特点外,如果你还犹豫是否要选择它?可以考虑以下的一些问题:
应用不需要事务及复杂 join 支持
新应用,需求会变,数据模型无法确定,想快速迭代开发
应用需要2000-3000以上的读写QPS(更高也可以)
应用需要TB甚至 PB 级别数据存储
应用发展迅速,需要能快速水平扩展
应用要求存储的数据不丢失
应用需要99.999%高可用
应用需要大量的地理位置查询、文本查询
如果上述有1个符合,可以考虑 MongoDB,2个及以上的符合,选择 MongoDB 绝不会后悔。
MongoDB安装与部署
1. Windows下安装MongoDB
(1)下载安装包
下载地址:https://www.mongodb.com/download-center/community
(2)解压MongoDB压缩包
(3)在mongodb目录下新建mongodb.conf文件,配置如下
dbpath=D:\mongodb\data #数据存放目录
logpath=D:\mongodb\log\mongo.log #日志存放目录
logappend=true #开启日志追加
port=27017 #设置端口号
bind_ip=0.0.0.0 #运行任何ip地址访问,去掉的话就是只有本机可以访问
【注意:需要先将data、log目录创建好】
(4)启动MongoDB
mongod -f D:\ mongodb\ mongodb.conf
(5)打开浏览器,输入:localhost:27017,显示如下效果
Linux下安装MongoDB
(1)下载安装包
下载地址:https://www.mongodb.com/download-center/community
也可用命令下载
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.5.tgz
解压MongoDB
tar -zxvf mongodb-linux-x86_64-rhel70-4.2.6.tgz -C /usr/local/
将下面的配置加到环境变量中:进入/etc/profile
export PATH=/usr/local/mongodb-linux-x86_64-rhel70-4.2.5/bin:$PATH
【如果出现:使用命令,未找到命令,是因为环境变量出问题,可以执行export PATH=/bin:/usr/bin:$PATH】
让/etc/profile修改生效
source /etc/profile
创建MongoDB数据存储位置
mkdir /home/data
创建配置文件/etc/mongodb/mongodb.conf
dbpath=/home/data/ #数据存放目录
#logpath=/home/data/mongo.log #日志存放目录
#logappend=true #开启日志追加
port=27017 #设置端口号
bind_ip=0.0.0.0 #运行任何ip地址访问,去掉的话就是只有本机可以访问
启动MongoDB,指定配置
mongod -f /etc/mongodb/mongodb.conf
客户端连接MongoDB
mongo mongodb://localhost:27017
远程连接MongoDB
在Linux开启防火墙
firewall-cmd --zone=public --add-port=27017/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --list-port
在windows用命令连接