数据持久化

[转帖]时序数据库技术体系 – InfluxDB TSM存储引擎之数据写入

女生的网名这么多〃 提交于 2019-12-01 10:19:34
时序数据库技术体系 – InfluxDB TSM存储引擎之数据写入 http://hbasefly.com/2018/03/27/timeseries-database-6/ 2018年3月27日 范欣欣 时序数据库 之前两篇文章笔者分别从TSM File文件存储格式、倒排索引文件存储格式这两个方面对InfluxDB最基础、最底层也最核心的存储模块进行了介绍,接下来笔者会再用两篇文章在存储文件的基础上分别介绍InfluxDB是如何处理用户的写入(删除)请求和读取请求的。在阅读这两篇文章之前,强烈建议看官先行阅读之前的多篇文章,不然可能会有一定的阅读障碍。 InfluxDB写入总体框架 InfluxDB提供了多种接口协议供外部应用写入,比如可以使用collected采集数据上传,可以使用opentsdb作为输入,也可以使用http协议以及udp协议批量写入数据。批量数据进入到InfluxDB之后总体会经过三个步骤的处理,如下图所示: 批量时序数据shard路由:InfluxDB首先会将这些数据根据shard的不同分成不同的分组,每个分组的时序数据会发送到对应的shard。每个shard相当于HBase中region的概念,是InfluxDB中处理用户读写请求的单机引擎。 倒排索引引擎构建倒排索引:InfluxDB中shard由两个LSM引擎构成 – 倒排索引引擎和TSM引擎

Redis数据库配置

有些话、适合烂在心里 提交于 2019-12-01 09:55:36
1.安装 sudo apt-get install redis-server 2.配置 sudo vim /etc/redis/redis.conf    修改配置 bind 指定ip port 指定端口 daemonize 是否以守护进程运行 dbfilename 数据持久化时的文件名 dir 上面的文件在哪保存 logfile 日志文件位置 database 数据库有多少个 slaveof 主从复制 来源: https://www.cnblogs.com/yangzixiong/p/11677127.html

Redis的那些最常见面试问题

不想你离开。 提交于 2019-12-01 09:48:18
 随笔:经过长达一周的奔波和面试,电话面试,回首今天终于成功的入职了,总共面试了大概10家公司,包括阿里,京东,IBM等等,京东技术过了,学历因为非统招就被pass了,阿里面了2次电话面试就没下文了,估计是我当时最后提问题的时候减分了吧,其他的也有一些offer,不是不想去,就是了无音讯了,眼看年关将近,也由不得我挑挑拣拣了,就直接进了我现在这家公司,主要是感觉公司人不错,薪水这方面也就没有计较太多。好了,书归正文,今天小编就大家送上我精心准备的关于Redis方面的面试题,希望可以帮到还在求职路上的你们。         1.什么是redis?    Redis 是一个基于内存的高性能key-value数据库。    2.Reids的特点      Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存操作,Redis的性能非常出色,每秒可以处理超过 10万次读写操作,是已知性      能最快的Key-Value DB。    Redis的出色之处不仅仅是性能,Redis最大的魅力是支持保存多种数据结构,此外单个value的最大限制是1GB,不像 memcached只能保存1MB的数据,因此Redis可以用来实现很多有用的功能

如何构建批流一体数据融合平台的一致性语义保证?

馋奶兔 提交于 2019-12-01 09:45:09
作者:陈肃 整理:周奇,Apache Flink 社区志愿者 本文根据陈肃老师在 Apache Kafka x Flink Meetup 深圳站的分享整理而成,文章首先将从数据融合角度,谈一下 DataPipeline 对批流一体架构的看法,以及如何设计和使用一个基础框架。其次,数据的一致性是进行数据融合时最基础的问题。如果数据无法实现一致,即使同步再快,支持的功能再丰富,都没有意义。 另外,DataPipeline 目前使用的基础框架为 Kafka Connect。为实现一致性的语义保证,我们做了一些额外工作,希望对大家有一定的参考意义。 最后,会提一些我们在应用 Kafka Connect 框架时,遇到的一些现实的工程问题,以及应对方法。尽管大家的场景、环境和数据量级不同,但也有可能会遇到这些问题。希望对大家的工作有所帮助。 一、批流一体架构 批和流是数据融合的两种应用形态 下图来自 Flink 官网。传统的数据融合通常基于批模式。在批的模式下,我们会通过一些周期性运行的 ETL JOB,将数据从关系型数据库、文件存储向下游的目标数据库进行同步,中间可能有各种类型的转换。 另一种是 Data Pipeline 模式。与批模式相比相比, 其最核心的区别是将批量变为实时:输入的数据不再是周期性的去获取,而是源源不断的来自于数据库的日志、消息队列的消息。进而通过一个实时计算引擎

Redis持久化

北城以北 提交于 2019-12-01 07:24:26
Redis提供了两种持久化的方式: RDB(Redis DataBase) AOF(Append Of File) 一、RDB   1)原理   在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot,它恢复时是将快照文件直接读到内存。   Redis会单独创建一个子进程进行持久化操作,会先将数据写入到一个临时文件中,等持久化进程都结束了,再用这个临时文件覆盖(替换)上次持久化好的文件。 整个过程中,由于数据是由父子进程共享的,所以父进程并不需要向子进程传递数据,所以在整个过程中,父进程是没有任何IO操作的,这就保证了极高的性能。在进行大规模的数据的复时,redis对恢复数据的完整性不是非常敏感,虽然RDB方式要比AOF方式更加高效,但是数据的安全性得不到保障。处于效率考虑,Linux中引入了写时复制技术,一般情况下,父子进程共享同一块物理内存,只有当进程空间的各段内容要发生变化时,才会将父进程的内容服饰给子进程,此时两者占有的物理内存就不一样了。   2)RDB保存文件细节   RDB持久化是默认开启的(而AOF不是),你开一在redis.conf中看到这样一段:      if(900秒内发生了至少一次key的改变){     持久化操作   }else if(300秒至少发生了10次key的改变){     持久化操作   }else if

Docker容器数据卷

隐身守侯 提交于 2019-12-01 07:05:34
容器关闭,数据消失; 我们对数据的要求希望是 持久化的; 容器之间希望可以共享数据; 一、能干嘛: 1.持久化 2.数据共享,双向拷贝 二、数据卷 容器内添加: 1.直接命令添加 2.DockerFile添加 3.备注 来源: https://www.cnblogs.com/pthaochiya/p/11666235.html

Redis实战总结-配置、持久化、复制

牧云@^-^@ 提交于 2019-12-01 06:57:28
Redis的配置主要放置在redis.conf,可以通过修改配置文件实现Redis许多特性,比如复制,持久化,集群等。 redis.conf部分配置详解 # 启动redis,显示加载配置redis.conf # ./redis-server /path/to/redis.conf # 停止redis # redis-cli -h IP -p PORT shutdown # 可以包含一个或多个其他配置文件,如果多个redis服务器存在标准配置模板,但是每隔redis服务器可能有个性化的配置 # include /path/to/local.conf # include /path/to/other.conf # 这个地方网上存在许多误解,bind的是网络接口。对于一个redis服务器来说可以有一个或者多个网卡。比如服务器上有两个网卡:bind 192.168.1.100 192.168.1.101,如果bind bind 192.168.1.100,则只有该网卡地址接受外部请求,如果不绑定,则两个网卡都接受请求 # bind 192.168.1.100 192.168.1.101 # bind 127.0.0.1 ::1 # 监听端口号,默认为6379,如果为0监听任连接 port 6379 # TCP连接中已完成队列的长度 tcp-backlog 511

如何构建批流一体数据融合平台的一致性语义保证?

风格不统一 提交于 2019-12-01 02:11:20
本文根据陈肃老师在 Apache Kafka x Flink Meetup 深圳站的分享整理而成,文章首先将从数据融合角度,谈一下 DataPipeline 对批流一体架构的看法,以及如何设计和使用一个基础框架。其次,数据的一致性是进行数据融合时最基础的问题。如果数据无法实现一致,即使同步再快,支持的功能再丰富,都没有意义。 另外,DataPipeline 目前使用的基础框架为 Kafka Connect。为实现一致性的语义保证,我们做了一些额外工作,希望对大家有一定的参考意义。 最后,会提一些我们在应用 Kafka Connect 框架时,遇到的一些现实的工程问题,以及应对方法。尽管大家的场景、环境和数据量级不同,但也有可能会遇到这些问题。希望对大家的工作有所帮助。 一、批流一体架构 批和流是数据融合的两种应用形态 下图来自 Flink 官网。传统的数据融合通常基于批模式。在批的模式下,我们会通过一些周期性运行的 ETL JOB,将数据从关系型数据库、文件存储向下游的目标数据库进行同步,中间可能有各种类型的转换。 另一种是 Data Pipeline 模式。与批模式相比相比, 其最核心的区别是将批量变为实时:输入的数据不再是周期性的去获取,而是源源不断的来自于数据库的日志、消息队列的消息。进而通过一个实时计算引擎,进行各种聚合运算,产生输出结果,并且写入下游。 现代的一些处理框架

Redis AOF 持久化详解

℡╲_俬逩灬. 提交于 2019-11-30 23:34:04
Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多。但是一旦进程退出,Redis 的数据就会丢失。 为了解决这个问题,Redis 提供了 RDB 和 AOF 两种持久化方案,将内存中的数据保存到磁盘中,避免数据丢失。RDB的介绍在这篇文章中 《Redis RDB 持久化详解》 ,今天我们来看一下 AOF 相关的原理。 AOF( append only file )持久化以独立日志的方式记录每次写命令,并在 Redis 重启时在重新执行 AOF 文件中的命令以达到恢复数据的目的。AOF 的主要作用是解决数据持久化的实时性。 RDB 和 AOF antirez 在《Redis 持久化解密》一文中讲述了 RDB 和 AOF 各自的优缺点: RDB 是一个紧凑压缩的二进制文件,代表 Redis 在某个时间点上的数据备份。非常适合备份,全量复制等场景。比如每6小时执行 bgsave 备份,并把 RDB 文件拷贝到远程机器或者文件系统中,用于灾难恢复。 Redis 加载 RDB 恢复数据远远快于 AOF 的方式 RDB 方式数据没办法做到实时持久化,而 AOF 方式可以做到。 下面,我们就来了解一下 AOF 是如何做到实时持久化的。 AOF 持久化的实现 如上图所示,AOF 持久化功能的实现可以分为命令追加( append )、文件写入(

sqlsqssion简单的理解

别来无恙 提交于 2019-11-30 16:19:20
Sqlsqssion理解 MyBatis的持久化解决方案是将用户从原始的JDBC访问中解放出来,用户只需要定义需要操作的SQL语句,无须关注底层的JDBC操作,就可以以面向对象的方式来进行持久化层操作.底层数据库连接的获取,数据访问的实现,事务控制等都无须用户关心,从而将应用层从底层的JDBC/JTA API抽取出来.通过配置文件管理JDBC连接,让MyBatis解决持久化的实现.在MyBatis中的常见对象有SqlSessionFactory和SqlSession.本文这种介绍一下两者的概念和使用. 一、 SqlSessionFactory SqlSessionFactory是MyBatis的关键对象,它是个单个数据库映射关系经过编译后的内存镜像.SqlSessionFactory对象的实例可以通过SqlSessionFactoryBuilder对象类获得,而SqlSessionFactoryBuilder则可以从XML配置文件或一个预先定制的Configuration的实例构建出SqlSessionFactory的实例.每一个MyBatis的应用程序都以一个SqlSessionFactory对象的实例为核心.同时SqlSessionFactory也是线程安全的,SqlSessionFactory一旦被创建,应该在应用执行期间都存在.在应用运行期间不要重复创建多次