MongoDB

安装

链接:https://pan.baidu.com/s/1SkmdvZ3olq886lo3bzrTIw
提取码:yyds

Docker安装

mkdir -p /app/mongo/config
vim  /app/mongo/config/mongod.conf

mongod.conf

#数据库数据存放目录
dbpath=/data/db
#数据库日志存放目录
#logpath=/data/mongolog
#以追加的方式记录日志
logappend = true
#端口号 默认为27017
port=27017 
#以后台方式运行进程
fork=false 
#开启用户认证
#auth=true
#关闭http接口,默认关闭http端口访问
#nohttpinterface=true
#mongodb所绑定的ip地址
bind_ip = 127.0.0.1 
#启用日志文件,默认启用
journal=true 
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false
quiet=true 

创建容器

docker run  --name mongodb -p 27017:27017  -v /app/mongo/config:/etc/mongo  -v /app/mongo/db/:/data/db/  -d mongo:6.0   mongod -f  /etc/mongo/mongod.conf

Linux安装

tar -zxvf mongodb-linux-x86_64-4.0.10.tgz  #解压
mv mongodb-linux-x86_64-4.0.10 /usr/local/mongo # 移到指定目录
#新建几个目录,分别用来存储数据和日志
#数据存储目录
mkdir -p /app/mongo/data
#日志存储目录
mkdir -p /app/mongo/log
vi  /app/mongo/mongod.conf
/usr/local/mongo/bin/mongod  -f  /app/mongo/mongod.conf
 
###出现successfully,说明成功!!
about to fork child process, waiting until server is ready for connections.
forked process: 90384
child process started successfully, parent exiting
###
ps -ef |grep mongod # 查看服务是否启动
# 分别使用mongo命令和compass工具来连接测试
# 提示:如果远程连接不上,需要配置防火墙放行!!!,或直接 关闭linux防火墙!
#查看防火墙状态
systemctl status firewalld
#临时关闭防火墙
systemctl stop firewalld
#开机禁止启动防火墙
systemctl disable firewalld

mongod.conf

systemLog:
    #MongoDB发送所有日志输出的目标指定为文件
    destination: file
    #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    path: "/app/mongo/log/mongod.log"
    #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    logAppend: true
storage:
    #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    ##The directory where the mongod instance stores its data.Default Value is "/data/db".
    dbPath: "/app/mongo/data"
    journal:
    #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
        enabled: true
processManagement:
    #启用在后台运行mongos或mongod进程的守护进程模式。
    fork: true
net:
    #服务实例绑定的IP,默认是localhost,192.168.111.101能让mongo compass连接到!!!
    bindIp: localhost,192.168.111.101
    #bindIp
    #  绑定的端口,默认是27017
    port: 27017

如果一旦是因为数据损坏,则需要进行如下操作(了解):

#1)删除lock文件:
rm -f /app/mongo/data/*.lock
#2)修复数据:
/usr/local/mongo/bin/mongod --repair --dbpath=/app/mongo/data

标准的关闭方法数据不容易出错,但麻烦):

目标:通过mongo客户端中的shutdownServer命令来关闭服务

//客户端登录服务,注意,这里通过localhost登录,如果需要远程登录,必须先登录认证才行。
mongo --port 27017
//#切换到admin库
use admin
//关闭服务
db.shutdownServer()

可视化界面

在这里插入图片描述

在这里插入图片描述

相关概念

业务应用场景

• High performance - 对数据库高并发读写的需求。
• Huge Storage - 对海量数据的高效率存储和访问的需求。
• High Scalability && High Availability- 对数据库的高可扩展性和高可用性的需求。
具体的应用场景如:
1)社交场景,使用 MongoDB 存储存储用户信息,以及用户发表的朋友圈信息,通过地理位置索引实现附近的人、地点等功能。
2)游戏场景,使用 MongoDB 存储游戏用户信息,用户的装备、积分等直接以内嵌文档的形式存储,方便查询、高效率存储和访问。
3)物流场景,使用 MongoDB 存储订单信息,订单状态在运送过程中会不断更新,以 MongoDB 内嵌数组的形式来存储,一次查询就能将
订单所有的变更读取出来。
4)物联网场景,使用 MongoDB 存储所有接入的智能设备信息,以及设备汇报的日志信息,并对这些信息进行多维度的分析。
5)视频直播,使用 MongoDB 存储用户信息、点赞互动信息等。
6)非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而 导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响, 整个过程会非常快速。

这些应用场景中,数据操作方面的共同特点是:
(1)数据量大
(2)写入操作频繁(读写都很频繁)
(3)价值较低的数据,对事务性要求不高

什么时候选择MongoDB
在架构选型上,除了上述的三个特点外,如果你还犹豫是否要选择它?可以考虑以下的一些问题:
应用不需要事务及复杂 join 支持
新应用,需求会变数据模型无法确定,想快速迭代开发
应用需要2000-3000以上的读写QPS(更高也可以)
应用需要TB甚至 PB 级别数据存储
应用发展迅速,需要能快速水平扩展
应用要求存储的数据不丢失
应用需要99.999%高可用
应用需要大量的地理位置查询、文本查询

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值