旅游电商网站建设方案模板,公司网站建设组织架构,网站建设需要的职位,新建网站百度怎么收录目录
一、背景描述及其方案设计
(一)业务背景描述
#xff08;二#xff09;模拟运维设计方案
二、Mongodb介绍
#xff08;一#xff09;nosql介绍
#xff08;二#xff09;产品特点
1、存储性
2、 效率性
3、结构 三、安装和配置
#xff08;一#xff09…目录
一、背景描述及其方案设计
(一)业务背景描述
二模拟运维设计方案
二、Mongodb介绍
一nosql介绍
二产品特点
1、存储性
2、 效率性
3、结构 三、安装和配置
一安装方式介绍
二二进制可执行安装
1、上传安装包到服务器目录
2、 解压到安装目录 并移动 3、创建数据存储目录和日志目录
4、启动mongod服务 三命令行客户端操作 四、数据结构类型操作 CURD
一添加数据
1、mongodb里存储数据的格式文档形式以bson格式的文档形式。
2、 语法db.集合名称.insertbson格式数据
3、普通数据添加
4、多维数据对象添加 5、数组信息添加 二查询数据
1、语法
2、笼统方式查询 3、条件限制查询 4、范围条件查询
5、多个条件查询
6、多维字段查询
7、数组条件查询
1查询满足其中之一即可显示 2满足查询条件所有的才可显示
8、限制查询字段 9、$or查询
10、count 语法 11、limit语法 skip语法 三修改数据 1、语法
2、有$set的修改
3、 没有$set的修改 四删除数据
1、删除记录
2、删除字段 五、安全设置
一限制登录
1、使用另外一台虚拟机使用mongo命令行端进行测试
编辑 2、关闭mongodb
3、 添加启动的脚本启动mongod 4、使用远程登录mongod服务
二 用户权限管理
1、需求
2、语法
3、实现步骤
①切换admin库进行用户创建
②关闭mongod服务重启添加权限参数并启动
编辑 ③测试使用
编辑 六、业务实例 一PHP扩展安装
1、上传php扩展包
2、解压编译安装
3、添加php.ini匹配
4、重启php-fpm查看phpinfo 二桌面管理使用 1、软件是绿色版本直接解压点击使用即可
2、填写相关参数 编辑 3、测试是否可以正常连接
4、点击连接 5、查看数据 三日志统计展示
1、很多网站需要统计某个页面或者某个功能访问量如果访问量比较大需要记录的组件具有很快的读写效率。可以使用功能性更多的mongodb来完成此业务。mongodb具有更多的数据灵活性。
2、网站访问日志记录的信息
3、使用服务器
4、Tip:nginx负载均衡服务器解决后端服务获取不到真实用户IP的方式
①在负载均衡nginx服务器填写真实用户IP的转发
②web服务器的nginx需要配置接收真实的用户IP需要使用到模块--with-http_realip_module在编译安装nginx时需要加入
③配置语法
编辑 ④操作实现步骤 1删除原来的文件
2上传修改好的文件
3访问页面之后可以查看到访问已经被记录 一、背景描述及其方案设计
(一)业务背景描述
⽤户数量 10000-12000⽤户量猛增 PV 1000000-500000024小时访问次数总和 QPS 50-100*每秒访问次数 300 DAU 2000~*000每日活跃用户数
根据业务需求
用户访问日志是在web服务器access.log存储
统计每日访问量峰值访问量
把每次访问存储到mongodb中mongodb用来筛选日志
二模拟运维设计方案 根据以上业务需求采用mongodb数据库存储用户的访问日志使用单台服务器
①访问日志存储
②在mongo中筛选查看信息
二、Mongodb介绍 一nosql介绍
数据库排名https://db-engines.com/en/ranking
关系数据库 RDBMS 设计表结构通过SQL语句进行操作。连表关系
常见的关系型数据库mysql oracle商业 DB2IBM sqlserver微软 access微软 sqlite3小型 嵌入到APP中 postgresql加州伯克利大学
nosql 泛指非关系数据库 存储格式keyvalue
memcached redis 内存缓存数据库
mongodb 具有更多的功能可以适用于大部分的mysql场景 document store 文档型数据库
二产品特点
1、存储性
比较适合存储大量的没有规则、无序的数据。
存储量大单表实现存储PB级别的数据
1KB 1024B
1MB 1024KB
1GB 1024MB
1TB 1024GB
1PB 1024TB
1EB Exabyte 百亿亿字节 艾字节1024PB
1ZB Zettabyte 十万亿亿字节 泽字节 1024EB
1YB Yottabyte 一亿亿亿字节 尧字节 1024ZB 2、 效率性
数据的效率就是指存储和读写速度。 3、结构 三、安装和配置
一安装方式介绍
yum方式安装Install MongoDB Community Edition on Red Hat or CentOS — MongoDB Manual
手动通用安装Install MongoDB Community Edition on Linux — MongoDB Manual
二二进制可执行安装
1、上传安装包到服务器目录 2、 解压到安装目录 并移动
shell tar xvf mongodb-linux-x86_64-rhel62-3.6.5.tgz shell mv mongodb-linux-x86_64-rhel62-3.6.5 /usr/local/mongodb 3、创建数据存储目录和日志目录
shell cd /usr/local/mongodb
shell mkdir data
shell mkdir logs
4、启动mongod服务
shell cd /usr/local/mongodb/bin
shell ./mongod --dbpath/usr/local/mongodb/data --logpath/usr/local/mongodb/logs/log.txt --fork
参数介绍
dbpath 数据存储路径
logpath 日志存储路径
fork 后台启动
auth 权限开启
bind_ip 指定绑定网卡ip 三命令行客户端操作 四、数据结构类型操作 CURD
一添加数据
1、mongodb里存储数据的格式文档形式以bson格式的文档形式。 在mongodb中可有无需创建数据库和集合使用的时候会自动创建
创建一个库devops 2、 语法db.集合名称.insertbson格式数据
3、普通数据添加
db.goods.insert({name:huawei01,price:1000,weight:135,number:35}) 4、多维数据对象添加
db.goods.insert({name:xiaomi5,price:1999,weight:156,number:45,area:{province:beijing,city:beijing}}) 5、数组信息添加
db.goods.insert({name:xiaomimax,price:2000,weight:180,number:100,area:{province:henan,city:zhengzhou},color:[black,white,red]}) 二查询数据
1、语法
db.集合名称.find(查询条件)
db.集合名称.findOne(查询条件)
2、笼统方式查询
不进行条件限制全部取出来。
findOne会取出符合结果的第一条信息并且以格式化形式返回 3、条件限制查询
条件格式所见及所得 db.goods.find({name:xiaomimax}) db.goods.findOne({name:xiaomimax}) 4、范围条件查询
mysql !
mongo $lt $lte $gt $gte $ne
db.goods.find({price:{$lte:1999}})
db.goods.find({price:{$lt:1999}}) 5、多个条件查询
类似mysql中的AND语法
db.goods.find({price:{$lte:1999},number:{$gte:40}}) 6、多维字段查询
通过多维字段的值进行查询
db.goods.find({area.city:zhengzhou}); 注意多维字段需要用引号包含起来
7、数组条件查询
1查询满足其中之一即可显示
db.goods.find({color:black}) 2满足查询条件所有的才可显示
db.集合名称.find({字段(数组):{‘$all’:[v1,v2]}})
db.goods.insert({name:iphonex,price:8398,weight:100,number:200,area:{province:jiangsu,city:nanjing},color:[gray,black,white,gold]})
db.goods.find({color:{$all:[black,gold]}}) 8、限制查询字段
在实际使用环境不需要查询并显示太多的字段。可以选择设定显示。
语法db.集合名称.find({查询条件},{筛选条件})
显示为1,不显示为0 要是1都是1要是0都是0 _id除外 db.goods.find({color:{$all:[black,gold]}},{name:1,_id:0}) 注意采用合适的方式显示出查询字段值内容 _id是mongodb数据库里的集合中默认的主键id具有索引内容通过主键查询会很快的查询速度。不要随意修改此值使用默认即可。 9、$or查询
满足其中之一的条件就可以显示类似mysql的中的or条件语法 select * from goods where price 5000 or number 100
db.goods.find({$or:[{price:{$gt:5000}},{number:{$gte:100}}]}) 10、count 语法
返回结果的数量统计
链式操作
db.goods.count() db.goods.find({price:{$gt:5000}}).count() db.goods.count({price:{$gt:5000}}) 11、limit语法 skip语法
类似于mysql中的limitskip,length语法 limit() 取几个 skip() 跳过几个 db.goods.find().limit(1);
db.goods.find().skip(1).limit(1); mongodb语法和SQL语句的对比 三修改数据 1、语法
db.集合名称.update({查询条件},{修改条件}) db.集合名称.updateOne() 修改匹配的第一条 db.集合名称.updateMany() 修改匹配所有条
2、有$set的修改
db.goods.update({name:iphonex},{$set:{price:8500}})
db.没有$set的修改goods.updateOne({name:xiaomi5},{$set:{price:1500}}) 3、 没有$set的修改
没有$set关键字语法把设置的字段进行修改,没有设置的就会被删除掉
db.goods.update({name:iphonex},{price:8550}) 四删除数据
1、删除记录
db.集合名称.remove({查询条件})
db.集合名称.deleteOne() 删除匹配的第一条
db.集合名称.deleteMany() 删除匹配的多条
db.goods.remove({price:8550}) db.goods.deleteMany({price:{$lte:2000}}) 2、删除字段
可以删除某个字段的操作使用的是update语法的$unset
db.goods.update({name:huawei01},{$unset:{weight:0}}) 值给一个就可以删除了
真实业务当中一般不做物理删除会使用一个标识来确认是否已经被删除的数据 五、安全设置
https://docs.mongodb.com/manual/tutorial/create-users/
mongodb安全事件https://www.jianshu.com/p/48d17a69e190
一限制登录
1、使用另外一台虚拟机使用mongo命令行端进行测试
远程登录方法 2、关闭mongodb
正常情况下不要kill -9 mongod使用mongo命令客户端里的关机命令 3、 添加启动的脚本启动mongod
shell vim /etc/init.d/mongodb bind绑定是外网通讯的网卡 --bind_ip_all表示绑定0.0.0.0这个任意地址 4、使用远程登录mongod服务 二 用户权限管理
1、需求
设置一个超级管理员账户对于所有库具有读写权限
2、语法
db.createUser({user:root,pwd:root,roles:[root]})
3、实现步骤
①切换admin库进行用户创建 ②关闭mongod服务重启添加权限参数并启动
关闭 在启动脚本中加入--auth参数 ③测试使用 添加用户限制用的库的权限只读 六、业务实例 一PHP扩展安装
1、上传php扩展包
如果没有phpize这个命令需要yum安装php-devel
2、解压编译安装
shell yum -y install php-devel #安装phpize shell tar xvf mongodb-1.5.3.tgz shell cd mongodb-1.5.3 shell phpize shell ./configure make make install 3、添加php.ini匹配
shell vim /usr/local/php/etc/php.ini 4、重启php-fpm查看phpinfo
shell service php-fpm restart 二桌面管理使用 1、软件是绿色版本直接解压点击使用即可 2、填写相关参数 3、测试是否可以正常连接 4、点击连接 5、查看数据 三日志统计展示
1、很多网站需要统计某个页面或者某个功能访问量如果访问量比较大需要记录的组件具有很快的读写效率。可以使用功能性更多的mongodb来完成此业务。mongodb具有更多的数据灵活性。
2、网站访问日志记录的信息
ip 用户访问的来源ip url 用户访问的地址 功能模块页面地址 time 访问时间 记录用户访问的时间值 user_agent 用户访问的客户端信息
3、使用服务器
web1server01-mycatserver07-masterserver02-slaveserver06-cacheserver08-mongodbserver10
4、Tip:nginx负载均衡服务器解决后端服务获取不到真实用户IP的方式
①在负载均衡nginx服务器填写真实用户IP的转发
注意如果使用负载均衡后端获取的IP为负载均衡代理的IP。 如果后端需要获取到真是的IP负载均衡服务器必须要配置参数把真实IP进行传输
②web服务器的nginx需要配置接收真实的用户IP需要使用到模块--with-http_realip_module在编译安装nginx时需要加入 ③配置语法 ④操作实现步骤 1删除原来的文件 2上传修改好的文件 3访问页面之后可以查看到访问已经被记录 php中获取代理的真实IP的方式但是一定要注意必须是代理服务器有传真实IP