快照技术

redis如何做到长期保存

十年热恋 提交于 2020-02-15 06:11:18
redis 持久化储存的方法: rdb 方式(快照) 快照,针对内存进行的快速读取技术将内存中的数据以快照的方式写到二进制文件 rdb 中,可以通过配置设置自动做快照持久化的方式,我们可以设置 redis 在 n 秒内如果超过 m 个 key 键修改就自动做快照 数据快照的原理,将整个 REDIS 内存中的所有的数据遍历一遍存储到一个扩展名为 rdb 的数据文件中,通过 save 命令保存文件 优点,简洁、、性能好、启动速度快 缺点,快照存储是在一定间隔时间做一次的,持久化之后,如果redis 意外下线,则会丢失一段数据 aof 方式 每当 redis 接收到会修改数据集的命令时,就会把命令追加到 AOF 文件 里,当你重启 redis的时候, AOF里的命令会被重新执行一次,重建数据 原理,子进程将数据库快照内容写入临时文件,并把父进程缓存的写命令也写入到临时文件中; 父进程将临时文件替换老的 aof 文件并命名,后面受到的写命令也开始往新的 aof 文件中追加 优点,可靠,日志可重写 缺点,文件偏大,速度较慢, 总结rdb和aof: 在同时开启 rdb 和 aof 模式时,会采用 aof 模式来读取数据,在正常使用中,如果不是十分在乎短时间内的数据丢失的使用,可以使用 rdb 方式会使服务器的效率更高,更节省 CPU 和硬盘,如果担心数据丢失的话, aof 方式无疑是更好的选择

缓存技术-Redis

时光毁灭记忆、已成空白 提交于 2020-02-12 12:29:58
1. Redis的了解 1.1 NoSQL 答:NoSQL(Not Only SQL),泛指非关系型的数据库,目的是解决高并发、高拓展和大数据储存问题。细分为:键值型(Redis),列存储(HBase),文档型(MongoDB),图形(Neo4j)。 1.2 Redis 答:Redis(Remote Dictionary Server远程字典服务)是一款 高性能、高并发 的key-value型分布式内存数据库,基于内存运行且支持 持久化 的NoSQL数据库。常被用于缓存和消息队列。 高性能:用户第一次访问数据后,数据存储在缓存中,之后再访问直接从缓存中获得,相当于直接操作内存。数据库数据改变后,同步改变缓存数据。 高并发:直接操作缓存能承受的请求远大于直接访问数据库,将部分数据放在33 redis中,让用户请求直接到缓存中寻找,不用访问数据库。 1.3 Redis和map区别 答:缓存分为本地缓存和分布式缓存。map是本地缓存,优点是轻量快速,缺点是多实例情况下,每个实例都有一个缓存。Redis是分布式缓存,多实例情况下,每个实例共用一个缓存,具有一致性,缺点是架构复杂。 1.4 Redis和memcached区别 答:主要是四点: Redis有更丰富的类型,memcached只支持String类型; Redis支持数据持久化,将内存数据保存到磁盘,memcached全部存在内存;

大数据技术之_04_Hadoop学习_02_HDFS_DataNode(面试开发重点)+HDFS 2.X新特性

☆樱花仙子☆ 提交于 2020-01-14 04:50:28
第6章 DataNode(面试开发重点) 6.1 DataNode工作机制 6.2 数据完整性 6.3 掉线时限参数设置 6.4 服役新数据节点 6.5 退役旧数据节点 6.5.1 添加白名单 6.5.2 黑名单退役 6.6 Datanode多目录配置 第7章 HDFS 2.X新特性 7.1 集群间数据拷贝 7.2 小文件存档 7.3 回收站 7.4 快照管理 第6章 DataNode(面试开发重点) 6.1 DataNode工作机制 DataNode工作机制,如下图所示。 1)一个数据块在DataNode上以文件形式存储在磁盘上,包括两个文件,一个是数据本身,一个是元数据包括 数据块的长度 , 块数据的校验和 ,以及 时间戳 。 2)DataNode启动后向NameNode注册,通过后,周期性(1小时)的向NameNode上报所有的块信息。 3)心跳是每3秒一次,心跳返回结果带有NameNode给该DataNode的命令如复制块数据到另一台机器,或删除某个数据块。如果超过10分钟没有收到某个DataNode的心跳,则认为该节点不可用。 4)集群运行中可以安全加入和退出一些机器。 6.2 数据完整性    思考: 如果电脑磁盘里面存储的数据是控制高铁信号灯的红灯信号(1)和绿灯信号(0),但是存储该数据的磁盘坏了,一直显示是绿灯,是否很危险?同理DataNode节点上的数据损坏了

【巨杉数据库SequoiaDB】巨杉Tech | SequoiaDB 分布式事务实现原理简介

情到浓时终转凉″ 提交于 2020-01-10 17:40:21
1 分布式事务背景 随着分布式数据库技术的发展越来越成熟,业内对于分布式数据库的要求也由曾经只用满足解决海量数据的存储和读取这类边缘业务向核心交易业务转变。分布式数据库如果要满足核心账务类交易需求,则其需要完善分布式事务,向传统关系型数据库看齐。即分布式事务的实现也需要像传统关系型数据库的事务一样满足事务的标准要求及定义,即ACID特征。 分布式数据库的数据是进行多机器多节点分散存储的,这样的存储架构为实现分布式事务带来了极大的难度。数据事务操作时,事务操作会结合数据分布情况,到不同的存储位置上去执行,而这个存储位置位于网络中的不同机器的不同磁盘上。 2 事务基本概念 2.1 事务使用场景 银行应用是一个经典案例,可以解释事务应用的必要性。假设银行数据库有两张表,支票账户表(check)和存款账户表(save)。现在要从LiLei的支票账户里转账200元到她的存款账户,那么需要至少完成3步操作: 检查支票存款账户的余额是否大于200元; 从支票存款账户余额中减去200元; 在存款账户余额中增加200元; 所有的操作被打包在一个事务里执行,如果某一步失败,就回滚所有已完成步骤。事务操作一般用 START TRANSACTION 语句开始一个事务,用 COMMIT 语句提交整个事务,永久地修改数据,或者用 ROLLBACK 语句回滚整个事务,取消已做的修改。事务SQL操作样例如下:

HBase 数据迁移方案介绍

无人久伴 提交于 2020-01-10 02:13:54
一、前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类。下面分别介绍一下。 二、Hadoop层数据迁移 2.1 方案介绍 Hadoop层的数据迁移主要用到DistCp(Distributed Copy), 官方描述是: DistCp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具。 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成。 它把文件和目录的列表作为map任务的输入,每个任务会完成源列表中部分文件的拷贝。 我们知道MR程序适合用来处理大批量数据, 其拷贝本质过程是启动一个MR作业,不过DisctCp只有map,没有reducer。在拷贝时,由于要保证文件块的有序性,转换的最小粒度是一个文件,而不像其它MR作业一样可以把文件拆分成多个块启动多个map并行处理。如果同时要拷贝多个文件,DisctCp会将文件分配给多个map,每个文件单独一个map任务。我们可以在执行同步时指定 -m 参数来设定要跑的map数量,默认设置是20。如果是集群间的数据同步,还需要考虑带宽问题,所以在跑任务时还需要设定 bandwitdh 参数,以防止一次同步过多的文件造成带宽过高影响其它业务。同时

Raft算法之日志压缩

家住魔仙堡 提交于 2020-01-07 15:49:56
Raft算法之日志压缩 最后的一部分是关于服务器日志压缩的,因为随着运行时间的增增长,日志信息也会变得越来越多,占有更多的空间。因此Raft采取了日志压缩的方法解决该问题,即将当前整个系统状态写入稳定存储的快照,然后该时间点之前的日志就可以丢弃掉,从而释放存储空间。 1 快照结构 从图中可见,快照包括以下几个部分内容: lastIncludedIndex: 表明快照中最后一条日志的索引值。也就是说日志一直压缩到该索引值的位置。该值以前连续若干个索引值的日志被压缩为快照,而该值以后的日志则不在快照中。 lastIncludedTerm:表明快照中最后一条日志所在的任期值。 state machine state:复制状态机的当前状态。 集群中每一个服务器都可以独立地进行拍摄快照(只对已提交的日志进行快照的拍摄),其中 lastIncludedIndex 与 lastIncludedTerm 值的存在时为了通过之前讲到的在日志复制中需要做的一致性检查。当服务器完成了该快照的写入之后,就可以将从快照中最后一条日志一直到先前所有的日志删除。 2 快照的发送 正常情况下, Leader 的日志将会与 Follower 保持一致,但并不是所有情况都处于正常情况下,有时候可能因为 Follower 的反应缓慢或崩溃造成与 Leader 的日志不一致。所以有时候需要 Leader 将快照信息发送给

SQL Server 复制:事务发布

北城余情 提交于 2020-01-04 22:44:05
一、 背景   在复制的运用场景中,事务发布是使用最为广泛的,我遇到这样一个场景:在Task数据库中有Basic与Group两个表,需要提供这两个表的部分字段给其它程序读取放入缓存,程序需要比较及时的获取到这些数据,作为DBA你需要从权限和性能控制的角度出发,我采用了SQL Server的事务复制技术和timestamp,下面只讲述事务复制的搭建过程; 二、 实现过程 (一) 环境信息 系统环境:Windows Server 2008 + SQL Server 2008 R2 发布服务器:192.168.1.151,服务器名称:USER-H2B2A89PEK 分发服务器:与发布服务器同一台机器 订阅服务器:192.168.1.152,服务器名称:USER-FJMO8L052U 发布数据库:Task 订阅数据库:TaskSiteInfo 数据库帐号:ReplicationUser/ ReplicationPassword (二) 搭建步骤 A. 发布服务器配置   首先在发布数据库和订阅数据库上创建相同的帐号和密码(ReplicationUser/ ReplicationPassword),并且设置Task数据库的安全对象,设置这样的帐号的目的就是为了和程序连接到数据库的帐号区分开,可以做权限上的控制,方便问题的排查; --更改安全对象的所有权 ALTER AUTHORIZATION

kvm系列之二:kvm日常管理

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-31 18:04:09
日常管理概述 接着上一篇,这篇博客主要描述kvm日常管理中使用的一些方法和命令。 kvm的管理主要有以下几个方面: kvm状态和配置管理:包括kvm虚拟机的开启、关闭、挂起、恢复,配置文件的导出导入和编辑,还有虚拟机重命名等 磁盘管理:包括虚拟机磁盘的创建、信息查看、格式转换、容量更改以及格式化、挂载使用 kvm的console连接 kvm开机自启动 kvm快照和克隆 另外,网络模式更改和热添加技术在下一篇描述 kvm状态管理 开启、关闭和查看 状态查看 [root@kvm1 opt]# virsh list Id Name State ---------------------------------------------------- 2 Centos7 running [root@kvm1 opt]# virsh list --all Id Name State ---------------------------------------------------- 2 Centos7 running 参数说明:加上--all参数可以显示所有虚拟机,如果不加,就不能显示处于关闭状态的虚拟机了。这个在下面关闭虚拟机的例子中演示 关闭 [root@kvm1 opt]# virsh shutdown Centos7 Domain Centos7 is being shutdown

redis缓存技术学习

邮差的信 提交于 2019-12-30 08:40:53
1 什么是redis redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操 作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的 是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。 2 性能怎么样 Redis是一个高性能的key-value内存数据库。官方性能测试结果: set操作每秒110000次,get操作每秒81000次。 3 可不可以存对象 和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。 4 Redis与memcache的最大区别 Replication(树形) data types(String、Lists、Sorted Sets、Hashes) persistence (snapshot

RDB 和 AOF 持久化的原理是什么?我应该用哪一个?它们的优缺点?

纵然是瞬间 提交于 2019-12-29 21:21:20
RDB 持久化   RDB 快照命令   RDB 创建原理   RDB 的优点   RDB 的缺点 AOF 持久化   AOF 的配置   AOF 创建原理   AOF 的优点   AOF 的缺点 RDB 和 AOF 二者的区别 RDB 和 AOF 我应该用哪一个 AOF BGREWRITEAOF 重写 备份 Redis 数据 Redis 提供了 RDB 和 AOF 两种持久化方案 : RDB:生成指定时间间隔内的 Redis 内存中数据快照,是一个二进制文件 dumpr.rdb AOF:记录 Redis 除了查询以外的所有写命令,并在Redis 服务启动时,通过重新执行这些命令来还原数据。 RDB 持久化 默认 Redis 会以 RDB 快照的形式将一段时间内的数据持久化到硬盘,保存成一个 dumpr.rdb 二进制 文件。 工作原理简单介绍一下 : 当 Redis 需要做持久化时,Redis 会 fork 一个子进程,子进程将数据写到磁盘上一个临时 RDB 文件中。当子进程完成写临时文件后,将原来的 RDB 替换掉,这样的好处就是可以 copy-on-write 。 当然我们也可以手动执行 save 或者 bgsave (异步)生成 RDB 文件。 900秒之内,如果超过1个key被修改,则发起快照保存; 300秒之内,如果超过10个key被修改,则发起快照保存; 60秒之内