MongoDB的写安全机制

写入安全(Write Concern)是一种由客户端设置的,用于控制写入安全级别的机制,通过使用写入安全机制可以提高数据的可靠性。

MongoDB提供四种写入级别,分别是:

  • (Unacknowledged)非确认式写入
  • (Acknowledged)确认式写入
  • (Journaled)日志写入
  • (Replica Acknowledged)复制集确认式写入

1. 非确认式写入

2. 确认式写入

3. journal日志写入

64位机器上,MongoDB 2.0以上版本默认情况下是开启journal

journal文件位于journal目录中,只能以追加方式添加数据,文件名以j._开头

数据库正常关闭时(例如:db.shutdownServer()来关闭数据库),数据库服务会清空journal目录下的所有文件

MongoDB数据库每隔100ms或30ms向journal文件中flush一次数据

journal日志和data数据在一个磁盘上时每隔100ms刷新一次,不在一个磁盘上时30ms刷新一次,建议把journal日志和data数据放在不同的磁盘上,提高数据的可靠性

4. 复制集确认式写入

5.写入安全级别的使用

W选项

0:非确认式写入

1:确认式写入

  说明:这个级别下,对副本级只对主库做确认写入

2:副本级确认式写入

  说明:这个级别下,副本级第一个slave写入成功后就响应给client

majority:复制级更多slave写入成功后,在响应给client

示例代码

//连接数据库
dbService = connect("localhost:27017");
//选择插入集合
db = dbService.getSiblingDB("jike"); //创建bluk对象用于批量插入
db.write_concern.drop(); //测试数据
var doc1 = {
name:"xiaoli",
age:20,
address:
{
province:"GuangDong",
city:"ShenZhen"
}
} print("======writeConcern的使用 - 非确认式写入======")
var result = db.wirte_concern.insert(doc1,{writeConcern:{w:0}})
printjson(result) print("======writeConcern的使用 - 确认式写入======")
var result = db.wirte_concern.insert(doc1,{writeConcern:{w:1}})
printjson(result) print("======writeConcern的使用 - 确认式写入 + journaled + wtimeout======")
var result = db.wirte_concern.insert(doc1,{writeConcern:{w:1,j:true,wtimeout:5}})
printjson(result)

mongodb写入安全级别的更多相关文章

  1. .NET 云原生架构师训练营(模块二 基础巩固 MongoDB 写入和查询)--学习笔记

    2.5.3 MongoDB -- 写入和查询 写入 查询 查找操作符 逻辑操作符 其他 嵌套对象 数组 游标方法 写入 https://docs.mongodb.com/manual/tutorial ...

  2. mongodb写入策略(WriteConcern)

    写入策略(WriteConcern) mongodb的写入策略有多种方式,写入策略是指当客户端发起写入请求后,数据库什么时候给应答,mongodb有三种处理策略:客户端发出去的时候,服务器收到请求的时 ...

  3. MongoDB Notes

    MongoDB 启动一个 mongo 实例 $ docker run --name some-mongo -d daocloud.io/mongo 由于该镜像的 Dockerfile 中包含了 EXP ...

  4. Mongodb Manual阅读笔记:CH4 管理

    4 管理 Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb Manual阅读笔 ...

  5. 十个 MongoDB 使用要点

    转自: 十个 MongoDB 使用要点    从 mongodb 阶段性技术总结 中抽取并整理了对大家有帮助的十个要点:   1.mongodb 表名和字段名统一用小写字母 mongodb 是默认区分 ...

  6. centos7源码包安装Mongodb,并设置开机自启动

    1.下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.12.tgz 2.解压 放到 /usr/local/ ...

  7. MongoDB之 写安全(Write Concern)

    MongoDB Write Concern,简称MongoDB写入安全机制,是一种客户端设置,用于控制写入安全的级别.Write Concern 描述了MongoDB写入到mongod单实例,副本集, ...

  8. mongodb 慕课网

    ------------------------------------------------mongodb简述------------------------------------------- ...

  9. logstash-out-mongodb实现elasticsearch到Mongodb的数据同步

    本文主要实现将Elasticsearch中的索引数据Index同步到Mongodb中的集合collection中. 0.前提 1)已经安装好源数据库:elasticsearch V2.X; 2)已经安 ...

随机推荐

  1. Matlab高级教程_第一篇:Matlab基础知识提炼_05

    第九节:矩阵的操作 第十节:数组与矩阵 linspace函数

  2. dlib安装踩过的坑

    使用到dlib时遇到了下载错误,不能正常安装 以下是成功安装的记录: 首先打开Anaconda prompt选定一个python环境,安装cmake和boost pip install cmake - ...

  3. Intellij IDEA中mybatis-generator自动生成

    一.在maven工程中的resource中创建generatorConfig.xml 二.配置generatorConfig.xml: <?xml version="1.0" ...

  4. 两种大小写比较|elif|

    name = ['alle','mike','tom','jerry','alice','hebe'] for i in name: if i == 'tom': print 'get!' #get! ...

  5. 吴裕雄--天生自然python机器学习:使用决策树预测隐形眼镜类型

    解决策树如何预测患者需要佩戴的隐形眼镜类型.使用小数据 集,我们就可以利用决策树学到很多知识:眼科医生是如何判断患者需要佩戴的镜片类型:一旦 理解了决策树的工作原理,我们甚至也可以帮助人们判断需要佩戴 ...

  6. .net core ioc

    -------------------------------------- 2. ---------------------------- -----------aop

  7. 让Spring不再难懂-mvc篇

    spring mvc简介与运行原理 Spring的模型-视图-控制器(MVC)框架是围绕一个DispatcherServlet来设计的,这个Servlet会把请求分发给各个处理器,并支持可配置的处理器 ...

  8. c++与c语言的区别部分

    1.new       <malloc> delete    <free> 2.多态: 重载 <函数     操作符>   类似于c中的变化参数 虚函数 3.模板 ...

  9. [LC] 22. Generate Parentheses

    Given n pairs of parentheses, write a function to generate all combinations of well-formed parenthes ...

  10. linux系统开机静态分配ip地址

    在/etc/sysconfig/network-scripts/ifcfg-eth0文件中 添加: IPADDR=192.168.1.100(设置静态地址) NETMASK=255.255.255.0 ...