redis的持久化配置:

主要包括两种方式:1.快照  2 日志

来看一下redis的rdb的配置选项和它的工作原理:

 save 900 1 // 表示的是900s内,有1条写入,则产生快照
save 300 1000 // 表示的是300s内,有1000次的写入,则产生快照
save 60 10000 // 表示的是60s内,有10000次的写入,则产生快照
(这3个选项都屏蔽,则rdb被禁用) stop-writes-on-bgsave-error yes // 后台dump备份进程出错的时候,主进程停止不停写入? rdbcompression yes // 导出的rdb文件是否需要压缩 rdbchecksum yes //导出的rdb恢复时数据要不要检验rdb的完整性 dbfilename dump.rdb //导出来的rdb文件名
dir ./ //rdb的放置路径

上面的就是rdb的常用配置,那它的备份原理是啥?

非常的简单,只要满足上面的save的3个条件中的任何一条,都会直接从内存中dump出一份镜像到磁盘上,速度非常的快

那我们考虑,如果我们在某一个时刻set存入一条数据,那这时突然redis宕机,那这个时候我们set的数据就会丢失,这是它的一个弊端,就是在发生一些异常的情况的时候,我们可能会丢失1-n分钟内的数据

那我们接下来看一下aof日志的一些配置和原理,它解决了上面rdb不能解决的一些问题:

同样,还是来看一下相关的配置内容:

 appendonly no # 是否打开 aof日志功能

 appendfsync always   # 每1个命令,都立即同步到aof. 安全,速度慢
appendfsync everysec # 折衷方案,每秒写1次
appendfsync no # 写入工作交给操作系统,由操作系统判断缓冲区大小,统一写入到aof. 同步频率低,速度快, no-appendfsync-on-rewrite yes: # 正在导出rdb快照的过程中,要不要停止同步aof
auto-aof-rewrite-percentage 100 #aof文件大小比起上次重写时的大小,增长率100%时,重写
auto-aof-rewrite-min-size 64mb #aof文件,至少超过64M时,重写

那我们开启了aof的日志的功能的时候,这时候我们每一次进行操作,aof就会将所有的操作记录到aof的日志中,我们可以通过appendfsync和我们具体的业务场景来具体指定多长时间写入文件,当然了推荐是everysec,那这样的话,由于我们记录的是每隔一秒的操作,那如果redis突然宕机的话,我们可以通过aof来恢复数据,这样的话就解决了上述rdb出现的数据丢失的问题,当然了这也会丢失大概1秒的数据吧,损失就会降低很多

我们来看一下相关的问题:

 注: 在dump rdb过程中,aof如果停止同步,会不会丢失?
答: 不会,所有的操作缓存在内存的队列里, dump完成后,统一操作. 注: aof重写是指什么?
答: aof重写是指把内存中的数据,逆化成命令,写入到.aof日志里.
以解决 aof日志过大的问题. 问: 如果rdb文件,和aof文件都存在,优先用谁来恢复数据?
答: aof,不会使用rdb来进行恢复数据 问: 2种是否可以同时用?
答: 可以,而且推荐这么做 问: 恢复时rdb和aof哪个恢复的快
答: rdb快,因为其是数据的内存映射,直接载入到内存,而aof是命令,需要逐条执行

Redis的持久化的两种方式drbd以及aof日志方式的更多相关文章

  1. Redis数据持久化的两种方式RDB和AOF

    由于Redis的数据都存放在内存中,如果没有配置持久化,redis重启后数据就全丢失了,于是需要开启redis的持久化功能,将数据保存到磁 盘上,当redis重启后,可以从磁盘中恢复数据.redis提 ...

  2. redis做持久化的两种方式,RDB、AOF讲解

    redis的两种持久化方式: 1.RDB方式 概念:在指定的时间间隔内保存数据快照 实现方式: 找到redis的安装目录,修改redis的配置文件(redis.conf):① 修改备份的时间间隔:sa ...

  3. Redis中持久化的两种方法详解

    Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里;另一种方法教只追加文件(append-only f ...

  4. [转载]redis持久化的两种操作RDB和AOF

    Redis 持久化: 提供了多种不同级别的持久化方式:一种是RDB,另一种是AOF. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot). AO ...

  5. redis数据持久化的两种方式

    1,AOF AOF持久化以日志的形式记录服务器所处理的每一个写.删除操作,查询操作不会记录,以文本的方式append记录,可以打开文件看到详细的操作记录.(相同数量的数据集而言,AOF文件通常要大于R ...

  6. Redis持久化的两种方式和区别

    该文转载自:http://www.cnblogs.com/swyi/p/6093763.html Redis持久化的两种方式和区别 Redis是一种高级key-value数据库.它跟memcached ...

  7. redis持久化的两种方式

    redis是一个内存型数据库.当redis服务器重启时,数据会丢失.我们可以将redis内存中的数据持久化保存到硬盘的文件中. redis持久化有两种机制.RDB与AOF.默认方式是RDB. 1.RD ...

  8. Redis 备份数据的两种方式

    既然是数据库,那就一定有数据备份方式了,而且 Redis 是内存形式的数据库,更需要数据备份了,要不然断电数据就全都丢失了. Redis 数据备份有两种方式: RDB(数据快照) AOF(记录操作日志 ...

  9. Android ListView两种长按弹出菜单方式

    转自:http://www.cnblogs.com/yejiurui/p/3247527.html package com.wyl.download_demo; import java.util.Ar ...

随机推荐

  1. KMPlayer 捆绑商业软件问题以及解决办法

    Kmplayer 本来是很好的播放软件,支持的格式很多,特别我要在本地播放flash swf 就用它.昨天下载安装了他们推荐已久的更新之后,莫名帮我安装了几个软件,都是我不能选择的,例如Winzip. ...

  2. nodejs单元测试

    前言: 之前一直听说过单元测试,但是具体怎么做,也没有深入研究,感觉测试是一件很麻烦的事,花费时间.可能是自己太懒了,一看到测试那么多陌生的东西就不想弄了. 然后一拖再拖,直到最近,换了一家公司,然后 ...

  3. 【MySQL】锁问题最佳实践

    最近一段时间处理了较多锁的问题,包括锁等待导致业务连接堆积或超时,死锁导致业务失败等,这类问题对业务可能会造成严重的影响,没有处理经验的用户往往无从下手.下面将从整个数据库设计,开发,运维阶段介绍如何 ...

  4. Hadoop总结篇之四---底层通信是怎么做到的

    上一篇介绍了一个job的提交过程.期间多次提到通信协议.那么协议是什么? 协议其实就是通信的双方所遵守的一套规范,这套规范规定了通信时传输的数据的固定的格式. 4.1 RPC协议:在hadoop中,我 ...

  5. XML编程知识点总结

    DOM和SAX DOM的全称是Document Object Model,也即文档对象模型.基于DOM的XML分析器将一个XML文档转换成一个对象模型的集合,应用程序挣是通过对这个对象模型的操作,来实 ...

  6. log_format为Nginx设置日志格式

    nginx服务器日志相关指令主要有两条,一条是log_format,用来设置日志格式, 另外一条是access_log,用来指定日志文件的存放路径.格式和缓存大小,一般在nginx的配置文件中日记配置 ...

  7. table的自动增加

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  8. 关于URLEnCode,URLDeCode,Base64,公钥私钥

    1.Base64非常适合http.mime协议,所以在一些类似webservice中可以用Base64. 用法如下:传出去之前先 Convert.ToBase64String(encryptedByt ...

  9. Apache配置文件服务器

    配置Apache文件服务器: apache配置文件服务器httpd.conf中这两个模块必须不被注释LoadModule autoindex_module modules/mod_autoindex. ...

  10. [杂] 将高版本iTunes备份恢复到低版本iOS设备中

    除非开发测试用设备,自用设备不要随便升iOS beta,不要随便升iOS beta,不要随便升iOS beta. 对于升级了高版本iOS的用户,默认情况下重刷低版本iOS时,iTunes不允许向低版本 ...