Snapsotting(快照RDB)方式

snapsotting是默认方式,(把数据做一个备份,将数据存储在文件)

这种方式将内存中数据照快照方式写到二进制文件中.默认的文件名为“dump.rdb”。可以通过配置(“redis.conf”)设置自动做快照持久化的方式,可以配置redis在n秒内如果超过m个key键修改就自动做快照

Save 900 1
Save 300 10
Save 60 1000

上面含义是900秒后有一个key键发生修改就执行Save。300秒后有10个key发生修改就执行Save。60秒后有1000个key发生修改就执行Save。

数据快照的缺点是持久化之后如果出现系统宕机就会丢失一段数据。

Append-only file(aof)方式

由于快照方式在一定间隔时间做一次Save,所以如果出现系统宕机情况下,就会丢失最后一次快照后的所有修改。aof方式有更好的持久化性,由于是在使用aof,redis会将每一次收到的写命令都通过whle函数追加到文件中,当redis重启时会通过重新执行文件中保存的写命令在内存中从建整个数据库内容。开启aof日志记录,需要在配置(“redis.conf”)文件中进行如下配置

appendonly yes

Appendonly配置不开启,可能在会断电时导致一段时间的数据丢失,因为Redis本身同步数据配置时是按Save条件同步,所有有的数据会在一段时间内只存在内存中

Appendfsync:no/always/everysec

no:表示等操作系统进行数据缓存同步到磁盘,性能最好,持久化没有保障

always:表示每次更新操作后手动调用fsync()将数据写到磁盘,每次收到写命令就立即强制写入磁盘,性能最差,但是保障完全的持久化

Everysec:表示每秒同步一次,每秒钟强制写入磁盘一次。在性能和持久化方面做了很好的折中

数据恢复

当Redis服务器挂掉以后,重启时按照以下优先级恢复数据到内存

  1. 如果只配置了AOF,重启时加载AOF文件恢复数据
  2. 如果同时配置了RDB和AOF,启动时只加载AOF文件恢复数据
  3. 如果只配置了RDB  ,启动时将加载dump文件恢复数据

Redis持久化方式的更多相关文章

  1. 【Redis篇】Redis持久化方式AOF和RDB

    一.前述 持久化概念:将数据从掉电易失的内存存放到能够永久存储的设备上. Redis持久化方式RDB(Redis DB)   hdfs:    fsimageAOF(AppendOnlyFile)   ...

  2. Redis持久化方式的选择

    本文将介绍Redis持久化的两种方式:快照持久化和AOF持久化,并对两种方法进行分析和对比,方便在实际中做出选择. 持久化 什么是持久化 Redis所有数据保存在内存中,对数据的更新将异步地保存到磁盘 ...

  3. redis 持久化方式

    对于persistence持久化存储,Redis提供了两种持久化方法: Redis DataBase(简称RDB) 执行机制:快照,直接将databases中的key-value的二进制形式存储在了r ...

  4. Redis持久化方式RDB和AOF

    Redis 持久化 RDB(快照) 优点 rdb是可进行压缩的二进制文件,表示Redis在某一个时间点的数据快照.非常使用与备份,灾难恢复等场景.比如使用定时任务执行bgsave并备份rdb到serv ...

  5. Redis持久化方式--RDB和AOF

    转载于:https://www.cnblogs.com/xingzc/p/5988080.html Redis提供了RDB持久化和AOF持久化 RDB机制的优势和略施 RDB持久化是指在指定的时间间隔 ...

  6. redis持久化方式与优缺点

    Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化.redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式:二是Appen ...

  7. redis——持久化方式RDB与AOF分析

    https://blog.csdn.net/u014229282/article/details/81121214 redis两种持久化的方式 RDB持久化可以在指定的时间间隔内生成数据集的时间点快照 ...

  8. 20190930-02 Redis持久化方式一:RDB及修改RDB的默认持久化策略 000 032

  9. Redis持久化的方式有哪些?优缺点分别是什么?

    Redis持久化方式        持久化的目的主要是做灾难恢复,数据恢复.由于Redis的数据全都放在内存里面,如果Redis挂了,没有配置持久化的话,重启的时候数据会全部丢失.         突 ...

随机推荐

  1. C++静态库与动态库(转)

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0cAAAC6CAIAAADqPKGOAAAgAElEQVR4nO2dy5WrOhREFYgjcAQ9Iw

  2. Kotlin实现LeetCode算法题之Median of Two Sorted Arrays

    题目Median of Two Sorted Arrays(难度Hard) 方案1,数组合并&排序调用Java方法 import java.util.* class Solution { fu ...

  3. 你知道android的MessageQueue.IdleHandler吗?

    WeTest 导读 干货!干货!或许可以是一种处理问题的新思路哟! 前言 我们知道android是基于Looper消息循环的系统,我们通过Handler向Looper包含的MessageQueue投递 ...

  4. 解决No enclosing instance of type * is accessible

    写一个内部类,并在构造函数中初始化时,遇到报错,搜索问题后发现,有网友出现过类似的问题,下面这个是说的浅显明白的,并确实解决了问题.于是,以下内容照搬过来,不再多费键盘了. public class ...

  5. Python入门 - 容器类型

    python的容器有四种:列表List,元祖Tuple,字典Dictionary和集合Set. 一.列表List a = [1, 2, 3, 'a', 'b', 'c'] b = 1.5 a.appe ...

  6. angular指令监听ng-repeat渲染完成后执行自定义事件方法

    今天工作中遇到需要用到ng-repeat遍历渲染完后执行某个操作,angular本身并没有提供监听ng-repeat渲染完成的指令,所以需要自己创建自定义指令. 在ng-repeat模板实例内部会暴露 ...

  7. zzuli 1816: 矩形 排序思维

    1816: 矩形 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 179  Solved: 54 SubmitStatusWeb Board Descr ...

  8. 通过邮箱发送html报表

    前言 需求是发送邮件时, 可以将报表正文贴到邮件里, 可以正常复制选中报表内容. 目前的做法是简单粗暴的转成了一张图片, 这样效果显然是很糟糕的. 今天看到邮箱里可以预览Word, Excel, F1 ...

  9. object 覆盖 div 在IE 和Firefox 的解决方案

    问题描述 公司产品需要在三维(3D)控件上显示弹框,按钮等,然而三维控件的object覆盖了div,弹框和按钮不能显示 firefox 解决方案 最外层div的背景使用不透明背景色,必须是不透明的哦 ...

  10. 一道看似dp实则暴力的题 Zombie's Treasure Chest

     Zombie's Treasure Chest 本题题意:有一个给定容量的大箱子,此箱子只能装蓝宝石和绿宝石,假设蓝绿宝石的数量无限,给定蓝绿宝石的大小和价值,要求是获得最大的价值 题解:本题看似是 ...