摘要:
在分布式系统中,我们有多个web app,这些web app可能分别部署在不同的物理服务器上,并且有各自的日志输出。当生产问题来临时,很多时候都需要去各个日志文件中查找可能的异常,相当耗费人力。日志存储多以文本文件形式存在,当有需求需要对日志进行分析挖掘时,这个处理起来也是诸多不便,而且效率低下。
为了方便对这些日志进行统一管理和分析,我们可以将日志统一输出到指定的数据库系统中,再由日志分析系统去管理。由于这里是mongodb的篇章,所以主观上以mongodb来做日志数据存储;客观上,一是因为它轻便、简单,与log4j整合方便,对系统的侵入性低。二是因为它与大型的关系型数据库相比有很多优势,比如查询快速、bson存储结构利于扩展、免费等。 阅读全文
摘要:
本文主要分享如果利用nginx把两个不同的网站挂到同一台服务器的80端口上 阅读全文
摘要:
MongoDB提供了MapReduce的聚合工具来实现任意复杂的逻辑,它非常强大,非常灵活。MapReduce使用JavaScript作为“查询语言”,能够在多台服务器之间并行执行。它会将一个大问题拆分为多个小问题,将各个小问题发送到不同的机器上,每台机器只负责完成一部分工作。所有机器都完成时,再将这些零碎的解决方案合并为一个完整的解决方案。 阅读全文
摘要:
本篇博文主要介绍MongoDB中一些常用的特殊索引类型,主要包括:
用于简单字符串搜索的全文本索引;
用于球体空间(2dsphere)和二维平面(2d)的地理空间索引。 阅读全文
摘要:
数据库索引与书籍的索引类似,有了索引就不需要翻整本书,数据库可以直接在索引中查找,在索引中找到条目后,就可以直接跳到目标文档的位置,这可以让查找的速度提高几个数量级。 阅读全文
摘要:
MongoDB 3.0之后,explain的返回与使用方法与之前版本有了很大的变化,介于3.0之后的优秀特色和我们目前所使用给的是3.0.7版本,本文仅针对MongoDB 3.0+的explain进行讨论。3.0+的explain有三种模式,分别是:queryPlanner、executionStats、allPlansExecution。现实开发中,常用的是executionStats模式,主要分析这种模式。 阅读全文
摘要:
插入:
使用insert或save方法想目标集合插入一个文档:
db.person.insert({"name":"ryan","age":30});
使用batchInsert方法实现批量插入,它与insert方法非常类似,只是它接受的是一个文档数组作为参数。一次发送数十,数百乃至数千个文档会明显提高插入的速度。 阅读全文
摘要:
说明:
主要功能:对mongodb的集合做增删改查。
项目的运行环境:tomcat6、jdk8。
所用技术:jsp/servlet、前端bootstrap。
mongodb:personmap。 阅读全文
摘要:
null用于表示空值或者不存在的字段:
{"data":null}
布尔类型只有两个值,true和false:
{"data":true}、{"data":false}
字符串类型的数据是由UTF-8字符组成:
{"data":"pingan"}
正则表达式
查询时,使用正则表达式作为限定条件,语法和javascript的正则表达式一样:
{"data":/pingan/i} 阅读全文
摘要:
MongoDB是一个开源的文档数据库,支持高性能、高可用性、自动缩放。
在MongoDB中,一条记录就是一个文档,是由字段和值对构成一个数据结构,类似于JSON对象。字段的值可以包括其他文档、数组和文档的数组。
数据结构如下所示: 阅读全文