【mongo 系列】mongodb 学习十三,内存引擎及配置

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 上次我们分享到了 wiredTiger 引擎以及他对于以前默认的 MMAPV1 引擎的优势关于 wiredTiger 引擎 配置这里补充一下

上次我们分享到了 wiredTiger 引擎以及他对于以前默认的 MMAPV1  引擎的优势

关于 wiredTiger 引擎 配置这里补充一下:

storage:
journal:
enabled: true
dbPath: /data/xiaomotong/mongo1/
directoryPerDB: true
engine: wiredTiger
wiredTiger:
engineConfig:
cacheSizeGB: 1
directoryForIndexes: true
journalCompressor:none (默认snappy)
collectionConfig:
blockCompressor: zlib 
indexConfig:
prefixCompression: true
• directoryPerDB

是否一个库一个文件夹

  • engine

数据引擎指定是什么

  • cacheSizeG

wiredTiger  引擎最大使用 cache 的大小,此处配置 1 个 G , 我们可以根据实际情况来配置

  • directoryForIndexes

是否将索引也按数据库名单独存储

  • collectionConfig

集合的压缩配置

  • blockCompressor

压缩方式 ,默认 snappy,这里选择 none 或者 zlib

  • indexConfig

索引配置

今天我来看看 mongodb 中的另外一个引擎,内存引擎

内存引擎

内存引擎,看名字就知道,数据肯定不是存在磁盘里面的,而是存在内存里面的

mongodb 的内存引擎是 InMemory 存储引擎,主要是用在企业版本的 mongodb,MongoDB Enterprise , 他不是将文档存储在磁盘上,而是将它们保留在内存中 ,

因此 InMemory 存储引擎 是没有持久化的 ,默认情况下,内存存储引擎使用50%的物理RAM减去1 GB


那么,就这个不会持久化的内存引擎,我们一般是在什么场景会使用他呢?

  • 存储非持久的数据

应用程序数据和系统数据,例如用户,权限,索引,副本集配置,分片群集配置等等

  • 用于高性能的读取

用于在副本集中的用来提供高性能查询的次要节点,可以从其他节点恢复数据,因此 内存引擎是不适用于副本集的主节点的,这里需要注意

因为内存引擎的数据很容易丢失

例如

image.png

上面有说到,内存引擎适合高性能的读取,没错,当客户端的请求是读操作的时候,尽可能的读取这个引擎所在的 mongodb,并且也不用担心这个引擎所在的 mongodb 会挂掉

因为挂掉之后,对整个集群没有什么影响,只需要挂掉的这个 mongodb 启动后找集群中的 其他 副本进行恢复数据即可

image.png

内存引擎关于配置上面没有什么特殊的,将上面  wiredTiger 引擎 的配置拿过来,将 engine 字段改成  inmemory 即可

GridFS

顺手在来看看 GridFS , 通过名字我们可以判别他是存储大文件的

我们一起来看看 GridFS 主要是能做什么,支持啥不支持啥。

GridFS 用作做大文件存储

我们在工作工程中,会使用 GridFS 存储大于16 MB的文件,GridFS 是用于存储和检索超过16 MB 的 BSON文档,如果一般数据量比较小的话,其实也用不到 GridFS

GridFS 不支持多文档事务

GridFS 文件存储不是只存储在单个文档中的

mongodb 中, GridFS 是不会将文件存储在单个文档中的,而是多个文档

例如将文件分为多个部分或大块(默认是 255 kB),并将每个大块存储为单独的文档

在 mongodb 中,GridFS 是使用这俩集合来存储文件块的,也就是存储文件的元数据

  • fs.chunks
  • fs.files

今天就到这里,学习所得,若有偏差,还请斧正

欢迎点赞,关注,收藏

朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

image.png

好了,本次就到这里

技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

我是阿兵云原生,欢迎点赞关注收藏,下次见~


相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
4月前
|
XML Ubuntu Linux
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
部署08---扩展-Win10配置WSL(Ubuntu)环境,WSL系统是什么意思,是Windows系统上的一个子系统, xml的一大特点是直链系统,直接链接你的CPU,硬盘和内存,如何用 WSL部署
|
1月前
|
缓存 算法 Java
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
这篇文章详细介绍了Java虚拟机(JVM)中的垃圾回收机制,包括垃圾的定义、垃圾回收算法、堆内存的逻辑分区、对象的内存分配和回收过程,以及不同垃圾回收器的工作原理和参数设置。
60 4
JVM知识体系学习六:JVM垃圾是什么、GC常用垃圾清除算法、堆内存逻辑分区、栈上分配、对象何时进入老年代、有关老年代新生代的两个问题、常见的垃圾回收器、CMS
|
1月前
|
资源调度
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
37 2
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
|
1月前
|
存储 Java
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
这篇文章详细地介绍了Java对象的创建过程、内存布局、对象头的MarkWord、对象的定位方式以及对象的分配策略,并深入探讨了happens-before原则以确保多线程环境下的正确同步。
53 0
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
|
1月前
|
弹性计算 关系型数据库 数据安全/隐私保护
阿里云国际版如何配置Windows服务器的虚拟内存
阿里云国际版如何配置Windows服务器的虚拟内存
|
3月前
|
存储 JavaScript 前端开发
学习JavaScript 内存机制
【8月更文挑战第23天】学习JavaScript 内存机制
34 3
|
3月前
|
KVM 虚拟化
[kvm]cpu内存硬盘配置
[kvm]cpu内存硬盘配置
|
4月前
|
Java
Jinfo 查看 jvm 配置及使用 Jstat 查看堆内存使用与垃圾回收
Jinfo 查看 jvm 配置及使用 Jstat 查看堆内存使用与垃圾回收
139 5
|
4月前
|
Cloud Native Devops 数据库
云原生架构:未来软件开发的引擎深入理解操作系统的虚拟内存管理
【7月更文挑战第30天】在这篇文章中,我们将深入探讨云原生架构的概念,以及它如何改变软件开发的世界。我们将从云原生的基本概念开始,然后深入到它的关键技术和实践,最后讨论它对软件开发的未来影响。无论你是软件开发者,还是IT专业人士,这篇文章都将为你提供深入理解和掌握云原生架构的重要信息。 【7月更文挑战第30天】在数字世界的构建中,虚拟内存是操作系统不可或缺的一环。本文将探索虚拟内存的核心概念、工作机制及其对现代计算环境的重要性,同时揭示其背后的技术细节和面临的挑战。
42 3
|
4月前
|
缓存 Linux 虚拟化
linux 查看服务器cpu 与内存配置
linux 查看服务器cpu 与内存配置
619 4