Kivi

没有什么远大理想,只是永远都不会满足而已


  • 首页

  • 关于

  • 标签

  • 归档

天云山·北京平谷

发表于 2017-07-02 更新于 2018-10-28 分类于 travel
本文字数: 914 阅读时长 ≈ 1 分钟

参考行程

写在前面

如果和我有一样有以下相同出游前提

  • 想站在玻璃制作的观景台上感受下直面万丈深渊的刺激
  • 想爬山
  • 人在北京
  • 想利用周末出游

那么这个行程可能有一定的参考价值

阅读全文 »

mongodb两段提交

发表于 2017-06-03 更新于 2017-07-08 分类于 mongodb
本文字数: 4.8k 阅读时长 ≈ 4 分钟

基础

mongodb所有的针对单个文档的操作都具有原子性,但是当一个操作涉及多个文档更新的时候,是非原子性的。但在生产环境中,是存在多文档更新的需求的,一般情况下,包含以下两个方面:

  • 原子性:如果任何一个操作失败,所有已经进行的操作全部回滚,并且中断接下来的所有操作
  • 一致性:如果操作执行过程遭遇中断,例如断电,数据库要有能力保持数据一致性

为了解决多文档更新事务性问题,可以使用两段提交的方式处理。两段提交可以保证数据是一致的,而且可以保证遇到错误之后可以恢复,但是在执行期间,文档本身处于待定状态

注意:因为mongodb只有单文档操作具有事务性,两段提交只能提供类似原子操作的语义,而不是提供完善的事务机制

阅读全文 »

mongos cursor 的使用

发表于 2017-06-01 更新于 2017-07-02 分类于 Node.js
本文字数: 3k 阅读时长 ≈ 3 分钟

写在前面

mongoose在github上是一个很受欢迎的开源项目,作为加强版的mongo node driver,有很多优点,但是无奈文档不怎么全面,下面是一些关于mongoose cursor的用法总结

阅读全文 »

mongodb常用命令整理

发表于 2017-05-22 更新于 2017-07-02 分类于 mongodb
本文字数: 1.5k 阅读时长 ≈ 1 分钟

慢查询相关

慢查询

1
2
3
4
5
6
7
db.currentOp().inprog.forEach(
function(op) {
if(op.secs_running > 5) printjson(op);
}
)

db.killOp(opid) // kill op

返回参数详解

阅读全文 »

mongodb固定大小表

发表于 2017-05-09 更新于 2017-07-02 分类于 mongodb
本文字数: 2k 阅读时长 ≈ 2 分钟

是什么

Capped collection(固定大小表)是一种大小为可设定的固定值的集合。支持高性能写入操作和高性能以插入顺序读操作。Capped collection原理类似循环缓冲区,当达到最大限制时,会覆盖最老的数据用以写入新的数据。

有什么特性

  • 大小固定可设定
  • 提供高性能的写入操作,高性能的基于插入顺序的读操作

什么时候需要用

下面列举两个常见场景

日志写入

在大磁盘容量的系统中,在没有索引的前提下,以接近写日志文件的速度存储日志到Capped collection中。而且自带先进先出的磁盘空间使用策略

缓存少量数据

缓存属于读取压力大,写入压力小的操作,如果不使用Capped collection,你就会面临两种选择

  • 牺牲写入性能,添加索引
  • 让这部分数据常驻内存(占用内存空间)
阅读全文 »
123…12
kivi

kivi

nodejs | server
58 日志
17 分类
32 标签
RSS
© 2019 kivi | 173k | 2:37
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Pisces v7.3.0
|