20200402 MongoDB安装及简介
回顾
# 1 dcoker 部署项目(本质跟在服务器部署项目没有区别),起不同的容器
# 2 dcokerfile编写(能看懂),django+uwsgi
# 3 uwsgi的配置,nginx的配置
# 4 mysql的主从搭建---》读写分离---》写相关用的很少---》性能瓶颈都是查询
# 5 django 读写分离:
-手动:queryset.use("数据库名字")
-自动:数据库路由,类:两个方法,一个读,一个写 ----》在setting中配置
# celery:
执行异步任务 :发布文章----》发布成功---》(后台吧文章存起来)
-网站后台统计一个近三个月的销量:
执行定时任务:延迟,每天定时干什么 视频课程访问量---》redis--》incrby---》10w----》12点,定时向数据库同步记录,定时清理过期订单
网络补充
# 1 并不是所有项目部署完,外部都能访问
# ipv4:表示的范围固定了,全球所有的设备,没法保证一个设备一个ip地址 ipv6:表示的范围更广
# 机器要上网,必须有个ip,现在又不够
# 你的项目,如果想让外部访问---》必须有个一个公网ip
# 内网穿透,即NAT穿透,网络连接时术语
# 宿主机里跑docker:docker之间要能联通,才能交互数据
mysql
# c/s:python连mysql数据库(pymysql这个模块,其实是个mysql客户端)---》连得是mysql服务端
# 服务端能不能连上,取决于服务有没有开启
# 设置了开机启动,机器已启动,服务自动就起来了,就能连上了
MongoDB
1. 简介
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
2. 特点
- MongoDB 是一个面向文档存储的数据库,操作起来比较简单和容易。
- 你可以在MongoDB记录中设置任何属性的索引 (如:FirstName="Sameer",Address="8 Gandhi Road")来实现更快的排序。
- 你可以通过本地或者网络创建数据镜像,这使得MongoDB有更强的扩展性。
- 如果负载的增加(需要更多的存储空间和更强的处理能力) ,它可以分布在计算机网络中的其他节点上这就是所谓的分片。
- Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可轻易查询文档中内嵌的对象及数组。
- MongoDb 使用update()命令可以实现替换完成的文档(数据)或者一些指定的数据字段 。
- Mongodb中的Map/reduce主要是用来对数据进行批量处理和聚合操作。
- Map和Reduce。Map函数调用emit(key,value)遍历集合中所有的记录,将key与value传给Reduce函数进行处理。
- Map函数和Reduce函数是使用Javascript编写的,并可以通过db.runCommand或mapreduce命令来执行MapReduce操作。
- GridFS是MongoDB中的一个内置功能,可以用于存放大量小文件。
- MongoDB允许在服务端执行脚本,可以用Javascript编写某个函数,直接在服务端执行,也可以把函数的定义存储在服务端,下次直接调用即可。
- MongoDB支持各种编程语言:RUBY,PYTHON,JAVA,C++,PHP,C#等多种语言。
- MongoDB安装简单。
3. win安装
下载
https://www.mongodb.com/download-center#community
安装
安装结束可能会有选择项是否重启的.根据需求yes or no
# c/s架构:服务端:创建成服务了:启动和停止---》默认已经启动了
启动停止服务
# windows上,要停止和启动服务:图形化的操作(服务里,点击)
-net start MongoDb
# 启动服务 (mongod --config mongod.cfg) systemctl start mysql-----》mysqld
-net stop MongoDb
# 停止服务
# 本质上,启动和停止服务,就是执行这条命令:手动执行
#C:\Program Files\MongoDB\Server\4.2\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\4.2\bin\mongod.cfg" --service
启动的三种方式
1 net start MongoDb
2 在图形化界面启动
3 mongod --config mongod.cfg
# 服务端启动,客户端才能连接(python代码连,cmd下连,图形化的软件连接(Navicat,robo3T...))
# socket:自己实现了通信协议
如果没有配置服务:手动启动
到安装路径下:
-mongod --config mongod.cfg
-在任意路径下可以执行mongod这个命令,是因为把 bin路径,配置到环境变量中了
图形化工具的安装
下载https://robomongo.org/download
根据需求,选择安装即可
远程连接
# 远程连接,只要装了c端,就可以连
# 远程连接
更改配置文件的bind 为0.0.0.0
./mongo --host 10.0.0.5 --port 27017
4. linux安装
在centos7中安装
下载
https://www.mongodb.com/download-center/community?jmp=docs
上传解压
上传
我使用的虚拟机安装,直接拖拽xshell中上传
或者使用rz命令上传
解压
解压文件:
tar -zxvf mongodb-linux-x86_64-4.0.6.tgz
移动至目录:
mv ./mongodb-linux-x86_64-4.0.6 /usr/local/mongodb
配置conf文件与目录
进入mongodb目录
cd /usr/local/mongodb/
创建db目录和日志文件
mkdir -p ./data/db
mkdir -p ./logs
touch ./logs/mongodb.log
创建mongodb.conf文件
vim mongodb.conf
添加以下:
#端口号
port=27017
#db目录
dbpath=/usr/local/mongodb/data/db
#日志目录
logpath=//usr/local/mongodb/logs/mongodb.log
#后台
fork=true
#日志输出
logappend=true
#允许远程IP连接
bind_ip=0.0.0.0
启动
启动
./bin/mongod --config mongodb.conf
连接
./bin/mongo