企业架构NoSQL数据库之MongoDB。
学习目标和内容:
1)能够简单描述mongoDB的使用特点:
2)能够安装配置启动MongoDB;
3)能够使用命令行客户端简单操作MongoDB;
4)能够实现基本的数据操作;
5)能够实现MongoDB基本安全操作;(备份安全和账户安全)
6)能够操作安装php的MongoDB的扩展;
背景描述和方案设计:
根据业务需求,用户访问日志是在Web服务器的access.log存储。
统计每日访问量、峰值访问量。
问:
取出访问数量最多的IP。
把每次访问存储到mongoDB中,mongoDB来筛 选日志。
这个就是mongoDB的一个应用。
根据以上业务需求,采用mongoDB数据存储用户的访问日志,使用单台服务器。
1)访问日志存储;
2)在mongoDB中筛选查看信息。
- [root@server01 logs]# cat access.log |awk '{print $1}' | sort -n|uniq -c|sort -rn|head
- 496 192.168.17.1
- 142 192.168.17.110
- 1 192.168.17.107
这个方法要记住的。
如果是外网的某个IP,有很大的访问量,说明是一个攻击的IP。
把所有的日志汇总到mongoDB的服务器上。访问一次,就往mongoDB服务器中写。
每隔一个小时,把数据写到mongoDB服务器中。
mongoDB和mysql混合使用的。
我们运维需要学的东西更多。
各个产品各有各的优势。
MongoDB介绍:
noSQL介绍:
关系型数据库(RDBMS),设计表结构,通过SQL语句进行操作,连表关系。
常见的关系型数据库,mysql、oracle(商业)DB2(IBM)sqlserver(微软)access(微软)sqlite3(小型嵌入到APP中)postgresql(加州伯克利大学)。
nosql泛指非关系数据库,只要不是关系型数据库的数据库,都叫nosql。 存储格式key=》value
memcached redis内存缓存数据库
mongoDB具有更多的功能,可以适用于大部分的mysql场景,document store文档类型数据库。
前段使用sqlite3,以文件存储数据的。
DB-Engines Ranking - popularity ranking of database management systems
数据库是要多花时间学习下的。
产品特点:
比较适合存储大量的没有规则的、无序的数据。未经过处理的数据。
存储量大:单表实现存储PB级别的数据。1PB=1024TB。
效率:
数据的效率,就是指存储和读写速度。
可以看到MongoDB的插入速度是很快的。查询数据时间稍微慢点。加了索引,速度就是非常明显了。索引是加在内存中,在内存中比遍历磁盘要快很多的。使用内存多。
MongoDB的内存占满了,这个就要内存资源,看到这种内存资源不够了,恰恰是因为资源扩容。
内存资源要进行扩容。
这个要注意下。
结构:
table的叫法叫colllection。column列叫field。主键:MongoDB自动将_id字段设置为主键。