(转)Redis的两种持久化RDB和AOF

转载 2019-08-28 01:43 阅读(81)次
Redis持久化备份数据的方式有两种:RDB(Redis DataBase) 、 AOF(Append Only  File).RDB什么是RDB 在指定时间间隔内,将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存中,来达到恢复数据的。 如何持久化 Redis会单独创建(fork)一个子进程来进行持久化,会先将数据写进一个临时文件中,等到持久化过程结束了,再用这个临时文件替换上次持久化好的文件。在这个过程中,只有子进程来负责IO操作,主进程仍然处理客户端的请求,这就确保了极高的性能。Snapshot 在默认情况下, Redis 将数...

flink 官网翻译系列 (二) Applications

原创 2019-06-16 23:06 阅读(129)次
原文地址:https://flink.apache.org/flink-applications.htmlApache Flink是一个用于对无界和有界数据流进行有状态计算的框架。 Flink在不同的抽象级别提供多个API,并为常见用例提供专用lib。 流应用程序的构建要素 Building Blocks for Streaming Applications基于流处理框架来构建与运行的应用,取决于该应用所选择的框架如何更好的处理 stream,state以及time。下面我们将会描述流处理应用中这三个基础元素,并解释Flink是如何处理这三者的。     stre...

flink 官网翻译系列 (一) 什么是flink

原创 2019-06-16 02:34 阅读(116)次
先声明,这系列文章我除了自己翻译也会借鉴前人的翻译结果。主要是为了自己的学习和一些跟我一样不擅长英语的朋友学习。我很看好flink这个框架,因为他同时能做流计算和批处理,性能上优于其他对手。而且我判断整个行业正在从老数据(离线)的T+N的BI工作中走向对实时性要求更高的流计算倾斜。3-4年前就听说了flink,一直因为各种原因没有好好学习。这是本系列的第一篇。https://flink.apache.org/flink-architecture.html  官网原文地址。 Apache Flink是一个能在有界和无界数据流上进行有状态计算的框架和分布式处理引擎。Flink被设计为在所...

(转)终于等到你!阿里正式向 Apache Flink 贡献 Blink 源码

转载 2019-01-28 11:41 阅读(207)次
Blink简介Apache Flink是德国柏林工业大学的几个博士生和研究生从学校开始做起来的项目,早期叫做Stratosphere。2014年,StratoSphere项目中的核心成员从学校出来开发了Flink,同时将Flink计算的主流方向定位为流计算,并在同年将Flink捐赠Apache,后来快速孵化成为Apache的顶级项目。现在Flink是业界公认的最好的大数据流计算引擎。 阿里巴巴在2015年开始尝试使用Flink。但是阿里的业务体量非常庞大,挑战也很多。彼时的Flink不管是规模还是稳定性尚未经历实践,成熟度有待商榷。为了把这么大的业务体量支持好,我们不得不在Flink...

(转)redis缓存穿透和缓存失效的预防和解决

转载 2018-09-14 00:28 阅读(212)次
虽然本文是说redis,但其实是缓存普遍存在的问题,所以也适用于memcache等缓存技术 原文地址 https://blog.csdn.net/qq_36858183/article/details/78424690 作者:OuYangZhiPeng_ 如果不能转载请联系我删除。 缓存穿透: 缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时需要从数据库查询,查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到数据库去查询,造成缓存穿透。 解决办法: 1. 对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。还有最常见的则是采用布隆过滤...

B树

原创 2018-07-23 17:40 阅读(210)次
大规模数据存储中,实现索引查询是在这样一个实际背景下,树单个节点存储的元素数量是有限的(如果元素数量非常多的话,查找就退化成节点内部的线性查找了),这样导致二叉查找树结构由于树的深度过大而造成磁盘I/O读写过于频繁,进而导致查询效率低下(为什么会出现这种情况,因为磁盘的操作费时费资源,如果过于频繁的多次查找势必效率低下,详见磁盘读取数据的原理)。 根据磁盘查找存取的次数往往由树的高度所决定,所以,只要我们通过某种较好的树结构减少树的结构尽量减少树的高度,那么是不是便能有效减少磁盘查找存取的次数呢?那这种有效的树结构是一种怎样的树呢? 在无法减少查询需求(数据量)的情况下,那么如何减少树的深度,...

磁盘读取数据的原理

原创 2018-07-22 12:58 阅读(221)次
数据库的数据一般都是存储在磁盘上,明白磁盘读取数据的原理,才能设计出提高数据库检索速度的设计。 我们知道信息存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方代表数字1(磁化为1),凹的地方代表数字0。因此硬盘可以以二进制来存储表示文字、图片等信息。 磁盘是一个扁平的圆盘(与电唱机的唱片类似)。磁盘的基本组件可分为以下几部分:磁头,盘片,盘面,磁道,柱面,扇区等。 盘面上有许多称为磁道的圆圈,数据就记录在这些磁道上。磁盘可以是单片的,也可以是由若干盘片组成的盘组。一块硬盘一般有多块盘片...

InfluxDB架构设计和数据布局

原创 2018-07-20 11:44 阅读(414)次
InfluxDB架构设计和数据布局 作为专门针对时间序列数据的存储,InfluxDB在使用的时候也需要针对本身的特性结合需求来设计schema。 1. 针对tags和field的特性进行设计schema tag 被索引,查询速度快。field没有做索引,查询需要scan,速度慢。 根据以上特性 ⑴ 常用来查询的数据存放在tags中 ⑵ 计划用来group by() 的数据,放在tags中 ⑶ 数据计划用InfluxQL function来处理的,放在fields中 ⑷ 数据需要表示为string以外的值,放在fields中。(tags始终表示为字符串) 2. 避免用InfluxQL的关键字...

InfluxDB的设计见解和权衡

原创 2018-07-19 18:21 阅读(294)次
作为时序数据库,InfluxDB在设计的时候,对一些具体问题做了优化,提高性能的同时也需要作出权衡,削减一些功能。 如下  方案一:趋向赞成问题,方案二:趋向反对问题 1. 当DB收到多次相同的数据,认为他是client多次发送了相同的数据。 方案一:赞成,为此提高性能,照单全收。InfluxDB是进行field set的整合。 方案二:反对,不支持存储重复数据,可能发生覆盖。 2. 时序数据库很少发生删除。如果发横几乎是删除大范围的旧数据,而不是删除刚刚插入的新数据。 方案一:限制删除权限,增加读写性能。 方案二:删除功能强烈限制。(我理解甚至不提供删除功能) 3. 更新数据很少发...

初识InfluxDB

原创 2018-07-18 16:05 阅读(264)次
如果对时序数据库概念还不是很了解,建议先看我的上一篇文章 What is a Time Series Database? InfluxDB主要用来对大量带时间戳数据的存储,包括DevOps监控,应用程序metrics,物联网传感器数据和实时分析。 通过配置InfluxDB以保持数据达到规定的时间长度,自动删除过期数据,从而节省机器空间。 InfluxDB还提供类似SQL的查询语言,用于与数据交互。 它用GO编写,所以编译后是没有对外部依赖的二进制文件。 它具有高性能,对相同的数据有高吞吐量的插入,压缩和实施查询。TSM引擎允许高吞吐量的数据插入和数据压缩。 它提供了高性能的API和H...

What is a Time Series Database?

原创 2018-07-16 21:21 阅读(308)次
时序数据库是什么 时序数据库(Time Series Database,TSDB)是针对时间戳或者时间序列优化的数据库。 时间序列是随着时间进行跟踪,监控,下采样和聚合的事件或者度量记录。比如:服务器metrics,应用性能监控,网络数据,传感器数据,时间,点击,市场交易等等。和常规数据最大的不同,就是用户会根据时间来对数据进行提问。 TSDB专门用来处理时间序列类型的数据,针对随着时间变化的特性进行了优化。因为时序数据的生命周期管理,汇总,大范围扫描与其他数据在负载上有很大的不同。 为什么TSDB现在越来越重要了? 以前我也遇到过类似的时序数据的需求,最早时序数据库主要侧重于查看财务数据,股...

hadoop3 新功能yarn service初探

原创 2018-06-29 11:26 阅读(286)次
最近浏览最新版的hadoop 3.1.0,发现一个有趣的东西,YARN service。看来hadoop的团队也意识到mapreduce的没落,转而发展自己的强项了,甚至还结合了docker。 YARN service 由几个重要的部分组成 Service Framework (ApplicationMaster) on YARN 本质上这是一个ApplicationMaster,他负责根据用户提供的服务定义,从ResourceManager请求containers,并根据placement 策略启动容器。另外他需要做繁重的任务: 1. 解析并执行服务定义和配置 2. 管理容器的生命周期,如自...

FastDFS的原理和应用场景

原创 2018-06-28 11:25 阅读(160)次
FastDFS的原理和应用场景 FastDFS 是一个 C 语言实现的开源轻量级分布式文件系统,作者余庆(happyfish100),支持 Linux、FreeBSD、AID 等 Unix 系统,解决了大数据存储和读写负载均衡等问题,适合存储 4KB~500MB 之间的小文件,如图片网站、短视频网站、文档、app 下载站等,UC、京东、支付宝、迅雷、酷狗等都有使用,其中 UC 基于 FastDFS 向用户提供网盘、广告和应用下载的业务的存储服务 FastDFS 与 MogileFS、HDFS、TFS 等都不是系统级的分布式文件系统,而是应用级的分布式文件存储服务。 应用场景:HDFS可能大家更...

从架构特点到功能缺陷,重新认识分析型分布式数据库(转)

转载 2018-06-26 18:16 阅读(136)次
最近阅读了   海边的Ivan   在  架构文摘   公众号上对几种分布式数据库的研究,结合我以前用elasticsearch时候遇到的并发问题,有种茅塞顿开的感觉。文章结构清晰,这边转载过来作为自己个人学习,原文地址   https://mp.weixin.qq.com/s?__biz=MzIyNjE4NjI2Nw==&mid=2652560761&idx=1&sn=6347d8e4f10d49c93aa589429e9fc9b6,如有不妥,请联系我删除。首先还是感谢作者lva...

SMP、NUMA、MPP的区别

原创 2018-06-25 16:00 阅读(162)次
在计算机技术发展上,从系统架构上可以分为3种, 1.   对称多处理器结构 (SMP : Symmetric Multi-Processor)  2.   非一致存储访问结构 (NUMA : Non-Uniform Memory Access)  3.   海量并行处理结构 (MPP : Massive Parallel Processing) 这里参考 cnblogs的一篇文章来对这3种架构做出区分。原地址:https://www.cnblogs.com/nucdy/p/6011103.html 同时我通过对此博...
MPP

OLTP和OLAP

转载 2018-06-25 01:48 阅读(133)次
联机事务处理OLTP(on-line transaction processing)、联机分析处理OLAP(On-Line Analytical Processing)是常见的数据库分类。实际上就是对应了传统关系型数据库和数据仓库。 OLTP是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易,也是传统意义上的数据库的增删改查。 联机分析处理 (OLAP) 的概念最早是由关系数据库之父E.F.Codd于1993年提出的。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。  这里参考了 https://blo...

Flink基本概念

原创 2018-06-09 10:51 阅读(160)次
Flink基本介绍 Flink官网入口在介绍flink前,先介绍了数据集模型和执行模型。我想这里主要是为了跟spark做对比。 数据集类型有两种 有界,不变的数据集。 无限,持续追加的数据集。很多时候认为是有界的数据其实是无界的,比如服务器上的日志,每天变动的股票市场交易,用户对互联网的访问,正在来临的物联网时代的传感器信息。 执行模型也分为两种: streaming:流式处理,连续的,一条条的处理到来的数据 batch:处理有限的时间段内数据,完成后然后释放资源 这两种执行模式都可以应用在有界或者无界的数据集上,虽然未必是最好的选择。现在大名鼎鼎的spark streaming就是使用bat...

hadoop2 yarn的流程(转)

转载 2018-06-08 00:53 阅读(142)次
最近复习hadoop,在CSDN上看了一篇介绍yarn的,很清晰,转载过来自己留着复习看 原地址:https://blog.csdn.net/zmx729618/article/details/73321316 .1 YARN 基本架构YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的JobTracker拆分成了两个独立的服务:一个全局的资源管理器ResourceManager和每个应用程序特有的ApplicationMaster。其中ResourceManager负责整个系统的资源管理和分配,而ApplicationMaster负责单个应用程序的管理。1.2 Y...

hadoop问题处理——namenode失去和datanode连接的问题

原创 2018-04-20 11:52 阅读(344)次
hadoop已经用了好多年,在现在的公司也一直是用hdfs来存放并计算日志。 原始数据持续写入hdfs,也周期性的读取hdfs数据(mapreduce后的结果)。 但有个问题困扰我很久,最近发现了原因: 2018-04-20 11:25:07,114 WARN org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy: Failed to place enough replicas, still in need of 3 to reach 3. For more information, please enable D...

python用selenium进行数据爬取

原创 2018-03-02 11:51 阅读(167)次
现在数据爬取无非针对两种数据:网页和API接口,API返回的数据基本是json,xml这类的格式。 而网页的数据则复杂的多,很多数据可能是用javascript的动态加载的。如果这时候只用httpclient或者python的requests来获取就无法满足。 模拟浏览器就可以攻破js这堵墙。selenium这方面技术的翘楚。 本文讲解win10环境,python3使用selenium爬取网页数据。 python 3 默认是没有selenium,需要安装。用pip安装pip install selenium 安装完成后,本文用firefox来作为启动的浏览器。#引入selenium包 fr...

在centos 6和7下用rpm安装mysql的步骤

原创 2018-02-28 18:34 阅读(115)次
mysql在进入centos7以后被mariadb替代了。但可能一部分人还是"想"(xi guan)用mysql,本文描述了安装mysql的具体步骤和一些特殊问题。 准备好mysql5.6.21.tar。可以在 https://dev.mysql.com/downloads/mysql/ 这里找到。        1.   把tar包上传到服务器上。用tar xvf   xxx.tar的方式解压 我的版本里面会有很多rpm包,但这边必需的只有server和client包。-rw-r--...

logstash 入门介绍

原创 2018-02-24 17:49 阅读(167)次
       作为开源的服务器数据处理管道,可以同时从多个采集源(如beats,也可以是其他)接收数据,转换,在发到存储库(elasticsearch)中。过滤,实时的解析和转换多种多样的输出选择可靠性安全和监控logstash能做什么:过滤,实时的解析和转换       数据从源传输到存储库的过程中,Logstash 过滤器能够解析各个事件,识别已命名的字段以构建结构,并将它们转换成通用格式,以便更轻松、更快速地分析和实现商业价值。       Logstash 能够动态地...

Beats 入门介绍

原创 2018-02-24 16:23 阅读(351)次
Beats官方给出的介绍如下Beats 平台集合了多种单一用途数据采集器。这些采集器安装后可用作轻量型代理,从成百上千或成千上万台机器向 Logstash 或 Elasticsearch 发送数据。其实这个功能在我好几年前(第一家公司的时候)曾经开发过类似的产品,是从很多网络设备上获取状态,生成日志再分析的系统。我最先介绍他,是我相信很多大数据项目中,数据采集是非常重要的,甚至比之后放到hadoop或者elasticsearch分析来得重要(ma fan)。因为采集需要适配各种不同的源头,每多一种源头就需要编写一类采集器。举例:美图公司为了采集数据,也自己开发了一个"育母蜘蛛&quo...

Elastic Stack 介绍

原创 2018-02-24 11:43 阅读(144)次
说起elasticsearch知道的人一定不少,但它其实已经发展出了很多衍生的框架来辅助。Elastic Stack就是这些框架的统称。如果你只是需要用elasticseach来做一些数据存储和搜索,那可以跳过本文直接看下面的文章,但如果你跟我一样是一个总是什么事都想尽量知道更多人,不妨花点时间看完它。Elastic Stack目前包含(但不限于) 1.   大名鼎鼎的Elasticsearch,可以用来搜索、分析和存储您的数据。Elasticsearch 是基于 JSON 的分布式搜索和分析引擎,专为实现水平扩展、高可用和管理便捷性而设计。2.  &n...