Archive: 2018

Replication In MongoDB

冗余和数据可用性 副本集提供了数据冗余,增强了数据的可用性。 在多个服务器上部署副本集可提供对单点故障的容错能力。 副本集可以提高读能力——分发请求到多个服务器。 MongoDB中的副本集 一个副本集由多个mongod实例组成,它们管理着同一组数据。 一个副本集包含多个数据节点和一个可选的仲裁节点;数据节点中有且仅有一个主节点,其它的节点为副节点。 所有写操作由主节点处理。 主节点在日志中记录

Index In MongoDB

索引能减少需要扫描的文档,从而提升查询效率;如果没有索引,查询需要扫描collection中所有document,相比之下多了许多磁盘IO操作。索引存储了索引字段的值以及目标文档的位置,按所有字段的值有序排列。MongoDB中索引定义在collection上,可以对字段、嵌套字段应用索引。 默认的_id索引创建collection时,MongoDB自动对_id字段设置了唯一索引(unique i

Transaction In MongoDB

MongoDB中的事务可以对不同datebase、不同collection、不同document使用。 事务和锁 Transaction开始之前会请求需要用到的锁,在指定时间(默认5ms)内不能满足就会退出。 Transaction退出或提交后会释放持有的锁 如果在Transaction开始之前要立即添加或删除collection,需要设置writeConcern为majority确保能获得相关

Operators in Aggregation Pipeline

阶段操作符(Stages) $addFields: 添加字段 $bucket: 基于指定的表达式和边界把文档分组 $bucketAuto: 基于指定表达式把文档平均的分为指定数量的组 $collStats: 关于某个collection的统计数据 $count: 当前阶段的文档的数量 $facet: 对当前阶段的文档并行执行多个AggregationPipline,得到不同维度数据 $geoNe

Aggregation In MongoDB

Aggregation PipelineAggregation Pipeline 是基于数据处理管道思想的数据聚合框架。把数据处理分为不同的阶段,数据依次经过每个阶段处理,最后得到结果。例如:12345// SELECT customer_id AS _id, SUM(amount) AS total FROM orders WHERE status = "DONE" GROUP BY cust

MongoDB

MongoDB是文档数据库:一条记录即一个文档(document)。 使用文档的好处: 文档能直接对应编程语言中的原始类型,例如对象(Object)。 嵌套的文档能减少昂贵的JOIN操作。 动态的结构能存储多样的数据。 MongoDB特点 高性能 嵌套的数据模型能减少数据库系统的IO操作。 索引能更快的查询,索引能包含嵌套的文档的键。 丰富的查询功能 基础的CRUD 聚合(Aggr

大量数据的排序算法

0.介绍假设有10GB数据文件,数据形式如下123456...12012358789... 每条数据元素使用换行符\n分割开,即每一行为一条数据。 现在需要排序该文件并输出结果文件。 由于数据量较大,无法直接在内存小于10G的计算机中排序。 下面介绍一种处理方法。 1.标记数据块建立数据结构Block来保存文件分块信息12345type Block { id: Number,

使用GitHook实现代码自动部署

0.准备工作123456# 安装Gitapt-get install git# 创建git用户并设置密码adduser gitpasswd git 1.在服务器创建Git仓库123# 在/srv/目录下创建Git裸仓库test.gitcd /srvgit init --bare test.git 2.创建工作目录在此目录中执行部署程序123456# 在git用户目录下面创建工作目录blogcd