摘要:
1、管理Node 1.1、隔离和恢复Node 在硬件升级、硬件维护等情况下,需要将某些Node隔离,使其脱离Kubernetes集群的调度范围。Kubernetes提供了一种机制,既可以将Node纳入调度范围,也可以将Node脱离调度范围。 隔离Node:新创建的pod不会调度到该node上。 恢复 阅读全文
摘要:
1、mongod命令 mongod命令的帮助说明 ]# mongod --help Options: --networkMessageCompressors arg (=snappy,zstd,zlib) 用于网络消息的压缩器列表 General options: -h [ --help ] 帮助信 阅读全文
摘要:
1、分片概述 分片是一种跨多台机器分发数据的方法。MongoDB可以分片来支持非常大的数据集和高吞吐量操作。 具有大数据集或高吞吐量应用程序的数据库系统可能挑战单个服务器的性能。例如,过高的查询率会耗尽服务器的CPU容量。工作集大小如果超过了系统内存会增加磁盘驱动器的I/O容量。 扩展有两种方法:垂 阅读全文
摘要:
1、副本集概述 MongoDB中的副本集是一组mongod进程,它们维护相同的数据集。副本集提供冗余和高可用性,是所有生产部署的基础。 1.1、冗余和数据高可用 副本集提供了冗余,提高了数据的可用性。由于在不同的数据库服务器上有多个数据副本,副本集提供了一定程度的容错能力,可以防止单个数据库服务器丢 阅读全文
摘要:
MongoDB的索引用于查询(find、findOne)和排序。 如果倾向于在集合中大量使用排序,那么应该根据排序的需求添加索引。如果在一个没有索引的集合中对目标字段使用sort(),并且数据量超过内部排序缓冲的最大大小,就会看到错误消息。 在集合中添加索引后,MongoDB必须维护它们,并在每次执 阅读全文
摘要:
如果使用了错误的数据结构,或者并未在集合中创建正确的索引,MongoDB的速度可能急剧下降。 如果数据库服务器的内存太小或者驱动(CUP或磁盘I/O)速度太低,就可能会对数据库性能产生巨大影响。 对于磁盘,MongoDB公司推荐使用SSD组成的RAID10(即有了性能也有了冗余)。 1、MongoD 阅读全文
摘要:
因为MongoDB是一个非关系数据库系统,所以许多关系数据库管理员需要执行的操作,MongoDB并不需要执行。例如,不需要在MongoDB服务器上创建数据库、集合或字段,因为在访问它们时动态创建这些元素。 不需要预定义所有元素,例如文档中的字段。管理员和开发者只需要偶尔从数据库中清除未使用的数据元素 阅读全文
摘要:
MongoDB全文搜索特性比简单的字符串匹配强大得多,它将基于为文档选择的语言以全词干(full-stemmed)的方式创建出索引,它是基于文档执行语言查询的一个极其强大的工具。 全文索引是在MongoDB中创建专有文本索引,通过这些索引可以执行文本搜索,从而定位到包含了匹配文本元素的文档。 Mon 阅读全文
摘要:
1、GridFS简介 MongoDB为了性能将文档大小的上限设置为16MB。如果要存储超过16MB的文档,就需要使用GridFS规范。 因为,即使仅请求文档中的一小部分字段,MongoDB仍然需要把整个文档加载到内存中。 使用GridFS可以轻松存储大文件,并且可以只访问部分文件,而不是读取完整的文 阅读全文
摘要:
1、数据库相关命令 第一次插入数据时自动创建数据库和集合。 MongoDB在插入数据的时候自动创建数据库,并且还区分大小写。 //查看已经存在的数据库 show dbs //查看当前正在使用的数据库 db //如果数据库不存在,就创建数据库,否则就切换到指定的数据库(必须要插入数据后,才能使用sho 阅读全文
摘要:
MongoDB中术语对应的SQL术语。 1、设计数据库 MongoDB数据库是非关系数据库并且是无模式的。这意味着,不同于关系数据库(例如MySQL),MongoDB数据库并未绑定到任何预定义的列或数据类型。这种实现方式最大的优势在于,处理数据非常灵活,因为该文档不需要遵守任何预定义的结构。 可以在 阅读全文
摘要:
MongoDB使用的版本号方式为:奇数版本号代表开发版。换句话说,可通过查看版本号的第二个号码判断该版本是开发版还是稳定版。如果第二个号码是偶数,那它就是稳定版。如果第二个号码是奇数,那它就是不稳定的版本或开发版。版本号包含的三部分数字: A.B.C。 A,第一个数字(或者最左面的数字):代表主版本 阅读全文
摘要:
MongoDB是一个高性能、开源、无模式的文档型数据库,由C++语言编写,旨在为Web应用提供可扩展的高性能数据存储解决方案,是当前NoSql数据库中比较热门的一种。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富、最像关系数据库的。它支持的数据结构非常松散, 阅读全文
摘要:
对Redis(6.0.16)的系统状态信息(info命令结果)和Redis的所有配置(包括Standalone、Sentinel、Cluster三种模式)做一个全面的梳理,主要内容如下: info系统状态说明。 Standalone配置说明。 Sentinel配置说明。 Cluster配置说明。 1 阅读全文
摘要:
在Redis的开发和运维过程中,由于对于Redis的某些特性没有真正合理地使用,会遇到一些棘手的问题,主要内容包括: Linux配置优化要点。 flushall/flushdb误操作快速恢复方法。 安全的Redis如何设计。 处理bigkey的方案与最佳实践。 寻找热点key。 1、Linux配置优 阅读全文
摘要:
缓存能够有效地加速应用的读写速度,同时也可以降低后端负载,对日常应用的开发至关重要。但是将缓存加入应用架构后也会带来一些问题,对这些问题介绍缓存使用技巧和设计方案,包含如下内容: 缓存的收益和成本分析。 缓存更新策略的选择和使用场景。 缓存粒度控制方法。 穿透问题优化。 无底洞问题优化。 雪崩问题优 阅读全文
摘要:
Redis Cluster是Redis的分布式解决方案,在3.0版本正式推出,有效地解决了Redis分布式方面的需求。当遇到单机内存、并发、流量等瓶颈时,可以采用Cluster架构方案达到负载均衡的目的。 3.0之前,Redis分布式方案一般有两种: 客户端分区方案,优点是分区逻辑可控,缺点是需要自 阅读全文
摘要:
Redis的主从复制模式下,一旦主节点由于故障不能提供服务,需要人工将从节点晋升为主节点,同时还要通知应用方更新主节点地址,对于很多应用场景这种故障处理的方式是无法接受的。从Redis 2.8开始正式提供了Redis Sentinel(哨兵)架构来解决这个问题。 1、Sentinel基本概念 由于对 阅读全文
摘要:
1、内存消耗 Redis内存消耗在哪些方面。有些内存消耗是必不可少的,而有些可以通过参数调整和合理使用来规避内存浪费。 内存消耗可以分为进程自身消耗和子进程消耗。 1.1、内存使用统计 了解Redis自身使用内存的统计数据,可通过执行info memory命令获取内存相关指标。 10.1.1.11: 阅读全文
摘要:
Redis是典型的单线程架构,所有的读写操作都是在一条主线程中完成的。当Redis用于高并发场景时,这条线程就变成了它的生命线。如果出现阻塞,哪怕是很短时间,对于应用来说都是噩梦。导致阻塞问题的场景大致分为内在原因和外在原因: 内在原因包括:不合理地使用API或数据结构、CPU饱和、持久化阻塞等。 阅读全文