在MongoDB存在另一种集群就是MongoDB的分片技术。通过使用分片可以满足MongoDB数据量大量增长的需求。当MongoDB存储海量的数据时,一台MongoDB服务器可能不能满足存储数据的要求,也可能不足以提供可接受的读写吞吐量。MongoDB为了解决这一系列的问题提出了将数据分割存储在多台服务器上,使得数据库系统能存储和处理更多的数据,以实现数据的分布式存储。这就是MongoDB的分片
主从复制是Redis集群实现的一种方式,而Redis集群的另一种实现方式就是Redis Cluster。它是Redis提供的数据分布式存储解决方案。 一、 什么是Redis Cluster? 日常在对于Redis的使用中经常会遇到一些问题,例如:如何保证Redis的持续高可用性?如何实现单实例Redis扩充?如何提升高并发时的性能问题?针对这些问题,在Redis 3.0版本中推出了Redis C
Redis的主从复制是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为Master主节点,后者称为Slave从节点。数据的复制是单向的,只能由主节点到从节点。在默认情况下每台Redis服务器都是主节点。一个主节点可以有多个从节点或者没有从节点,但一个从节点只能有一个主节点。主从复制的作用: 数据备份:Redis主从复制实现了数据的热备份,是数据持久化之外的一种数据冗
HBase的存储结构分为逻辑存储结构与物理存储结构,并且HBase通过逻辑存储结构来管理物理存储结构。而最终物理存储对应的文件又是存储在HDFS之上。而HBase的物理存储结构主要包括StoreFile、HFile和HLog日志。 点击这里查看视频讲解:【赵渝强老师】:HBase的存储结构 一、 数据文件HFile HBase会定时刷新MemStore中的数据从而生成
HBase的逻辑存储结构主要包括:命名空间(NameSpace)、表(Table)和列族(Column Family)。 点击这里查看视频讲解:【赵渝强老师】:HBase的存储结构 下面分别进行介绍。 一、 命名空间(NameSpace) HBase的命名空间相当于Oracle和MySQL中的数据库,它是对表的逻辑划分。不同的HBase命名空间类似于关系型数据库中的不同的数
HBase是大表(BigTable)思想的一个具体实现。它是一个列式存储的NoSQL数据库,适合执行数据的分析和处理。简单来说,就是适合执行查询操作。从体系架构的角度看,HBase是一种主从架构,包含:HBase HMaster、Region Server和ZooKeeper,下图展示了这一架构。 其中: HBase HMaster负责Region的分配及数据库的创建和删除等操作。 Regi
Memcached支持两种不同方式的客户端路由算法,即:求余数Hash算法和一致性Hash算法。下面分别进行介绍。 一、 求余数的路由算法 求余数Hash算法的客户端路由是对插入数据的键进行求余数,根据余数来决定存储到哪个Memcached实例。 点击这里查看视频讲解:【赵渝强老师】:Memcached基于求余数的路由算法 例如:Memcached服务器端有三台MemCac
MongoDB提供了mongod命令用于启动MongoDB服务器端;而停止MongoDB服务器却可以通过几种不同的方式完成。下面分别进行介绍。 一、【实战】启动MongoDB服务器 通过执行下面的语句可以查看启动MongoDB服务器的帮助信息: mongod --help # 输出的信息如下: ...... Storage options: --storageEngine arg What
对运行状态的Redis实例进行监控是运维管理中非常重要的内容,包括:监控Redis的内存、监控Redis的吞吐量、监控Redis的运行时信息和监控Redis的延时。通过Redis提供的监控命令便能非常方便地实现对各项指标的监控。 一、监控Redis的内存 点击这里查看视频讲解:【赵渝强老师】:监控Redis的内存 Redis监控内存最直接的方法当然就是使用系统提供的info
随着大数据技术的兴起,NoSQL数据库得到了广泛的应用。NoSQL的全称是Not Only SQL,中文含义是不仅仅是SQL。它泛指所有的非关系型数据库,即:在NoSQL数据库中存储数据的模型可能不是二维表的行和列。NoSQL数据库不遵循关系型数据库范式的要求,因此在NoSQL数据库中可能会造成数据的冗余。 点击这里查看视频讲解:【赵渝强老师】:什么是NoSQL数据库? 下
Redis慢查询日志帮助开发和运维人员定位系统存在的慢操作。慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息(慢查询ID,发生时间戳,耗时,命令的详细信息)记录下来。Redis客户端的一条命令可以分为四个部分执行,如下图所示。 一条Redis的慢查询日志由以下四个属性组成:标识ID,发生时间戳,命令耗时,执行命令和参数。 提示:需要注意的是
在MongoDB数据更新时,WiredTiger存储引擎使用预写日志的机制先将数据更新写入到Journal日志文件中。然后在创建检查点操作开始时,再将日志文件中记录的操作刷新到数据文件。换句话说,通过预写日志和检查点机制可以保证将数据更新持久化到数据文件中,并实现数据的一致性。 点击这里查看视频讲解:【赵渝强老师】:MongoDB写入数据的过程 在检查点(Checkpoin
MongoDB在执行写操作时,WiredTiger存储引擎会在文档级别进行并发控制。换句话说在同一时间点上,多个写操作能够修改同一个集合中的不同文档;而当多个写操作修改同一个文档时,必须以序列化方式执行。这意味着如果当前文档正在被修改,其他写操作必须等待该文档上的写操作完成之后才能进行修改。对于大部分的文档读写操作,WiredTiger引擎使用的都是乐观锁;而在数据库和集合级别,WiredTig
数据是MongoDB的核心,MongoDB通过使用Journal日志保证数据的安全。Journal日志用于记录上一个检查点之后发生的数据更新,并将更新的信息顺序写入Journal日志文件中。通过使用Journal日志能够将数据库从系统异常终止事件中还原到一个有效的状态。通过6.5.1.3小节的介绍了解到,MongoDB使用预写日志机制实现数据的持久化。每个Journal日志文件的大小是100M,
MongoDB的逻辑存储结构是一种层次结构,主要包括了三个部分,即:数据库(Database)、集合(Collection,也可以叫做表)和文档(Document,也可以叫做记录)。MongoDB的逻辑存储结构是面向用户使用的,使用mongoshell或者应用程序操作MongoDB时,主要就是操作的MongoDB逻辑存储结构。 点击这里查看视频讲解:【赵渝强老师】:MongoDB
Redis 是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦服务器进程退出会造成服务器中的数据库状态也会消失。所以 Redis 提供了数据持久化功能。Redis支持两种方式的持久化,一种是RDB方式;另一种是AOF(append-only-file)方式。两种持久化方式可以单独使用,也可以将这两种方式结合使用。 点击这里查看视频讲解:【赵渝强老师】:Redis的数据持
Memcached是一个高性能的分布式的内存对象缓存系统。通过使用Memcached可以支持高负载的网站系统,以分担数据库的压力。Memcached通过在内存里维护一个统一的巨大的Hash表来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。但是Memcached不能将数据进行持久化,因此严格意义来说,Memcached只能叫做一个缓存技术,而不能叫做数据库。 点击
WiredTiger提供文档级别(Document-Level)的并发控制,检查点(CheckPoint),数据压缩和本地数据加密( Native Encryption)等功能。从MongoDB 3.2 版本开始,WiredTiger成为MongDB默认的Storage Engine。 点击这里查看视频讲解:【赵渝强老师】:MongoDB的WiredTiger存储引擎
MongoDB的In-Memory存储引擎将会把数据存储在内存中。除了少量的元数据和诊断日志以外,In-Memory存储引擎不会维护任何存储在硬盘上的数据,从而避免硬盘的读写操作,以减少数据查询的延迟,从而提高性能。 提示:虽然In-Memory存储引擎不会向文件系统写入数据,但是它任然需要使用--dbpath参数指定一个目录用于存储少量的元数据和诊断日志。通过指定参数--inMemory
在MongoDB 3.2版本以前,MongoDB使用MMAPv1作为默认的存储引擎。在MMAPv1的存储引擎中,包含以下的组成部分: Database 每个Database由一个.ns名称空间文件及若干个数据文件组成。数据文件从0开始编号,依次为.0、.1、.2等。数据文件大小从64MB起,依次倍增,最大为2GB。 Namespace 每个Database可以包含多个Namespa
存储引擎(Storage Engine)是MongoDB的核心组件,它负责管理数据如何存储在硬盘(Disk)和内存(Memory)上。从MongoDB 3.2 版本开始,MongoDB支持多种类型的数据存储引擎。 点击这里查看视频讲解:【赵渝强老师】:MongoDB的存储引擎 从MongoDB的发展历史上看,支持以下三种存储引擎: WiredTiger存储引擎 Wi
Redis使用的是客户端-服务器(C-S)模型和请求/响应协议的TCP服务器。这意味着通常情况下一个请求会遵循以下步骤: 第一步:客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。 第二步:服务端处理命令,并将结果返回给客户端。 点击这里查看视频讲解:【赵渝强老师】:Redis的管道Pipeline Redis执行的过程如图
在了解到了MongoDB复制集的体系架构以后,下面将通过具体的步骤来演示如何搭建单个节点的MongoDB复制集环境。下表列举了MongoDB复制集的配置信息。 提示:上表在一台主机上通过监听不同的端口来搭建MongoDB复制集环境,也可以使用三台主机来搭建。 点击这里查看视频讲解:【赵渝强老师】:部署MongoDB复制集 下面是具体的搭建步骤: (1)创建M
MongoDB的复制集中主要包括三个成员,即:主库、从库和仲裁者。一般情况下,MongoDB复制集集群中是一个主库和两个从库。数据库管理员也可以在复制集中添加一个MongoDB的实例,作为复制集的仲裁者。但仲裁者不是必须的。视频讲解如下: 点击这里查看视频讲解:【赵渝强老师】:MongoDB复制集中的成员 主库 在一个MongoDB复制集中,只能存在一个主库用于接收
MongoDB的复制就是数据文档在多个MongoDB服务器节点直接进行数据同步的过程。因此MongoDB的复制集是一种集群技术。 点击这里查看视频讲解:【赵渝强老师】:MongoDB复制集的体系架构 MongoDB复制集由一组MongoDB实例组成,其中包含一个Primary节点和多个Secondary节点,MongoDB 客户端的Driver通过使用Primary节
一般来说消息队列有两种场景,一种是发布者订阅者模式,而另一种是生产者消费者模式。这两种场景的消息队列Redis都能够实现。 该模式是利用了List能够实现队列(先进先出)和栈(先进后出)的特点。Redis List的主要操作为lpush/lpop/rpush/rpop四种,分别代表从头部和尾部的push/pop,除此之外List还提供了两种pop操作的阻塞版本blpop/brpop,
一般来说消息队列有两种场景,一种是发布者订阅者模式,而另一种是生产者消费者模式。这两种场景的消息队列Redis都能够实现。 发布者和订阅者通过channel频道进行解偶, 订阅者监听某个channel的消息,当发布者向该channel推送消息时,订阅该channel的消费者都可以收到消息。 点击这里查看视频讲解:【赵渝强老师】:Redis的消息发布与订阅 下
MongoDB是一个基于分布式文件存储的NoSQL数据库,它也是最像关系型数据库的NoSQL数据库。MongoDB官方提供了两个客户端工具:一个是命令行客户端工具mongoshell;另一个是图形化免费工具MongoDB Compass。 点击这里查看视频讲解:【赵渝强老师】:MongoDB的客户端工具 下面分别介绍。 一、命令行客户端工具 mongoshell mo
Copyright © 2005-2025 51CTO.COM 版权所有 京ICP证060544号