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. ECMAScript 6 第一天 let和const命令

    ES6新增声明变量的方法let命令,const命令. (ES5只有两种声明变量的方法:var 命令和 function 命令.) let命令,用来声明变量. 与var声明变量不同于: 1.  let声 ...

  2. css3实现聊天气泡

    1: <div class="comment"></div><style type="text/css"> .comment ...

  3. 使用asp.net mvc引擎开发插件系统

    一.前言 我心中的插件系统应该是像Nop那样(更牛逼的如Orchard,OSGI.NET),每个插件模块不只是一堆实现了某个业务接口的dll,然后采用反射或IOC技术来调用,而是一个完整的mvc小应用 ...

  4. C语言之二分猜数字游戏

    #include <stdio.h>#include <windows.h>#include<string.h>int main() { int oldprice, ...

  5. thinkphp系列:类的自动加载是如何设计的

    在使用框架开发时,可以发现框架有很多核心类,却很少看到显示的引入某个文件的代码,这是因为框架都采用了类的自动加载机制,即使用到类时,框架会自动找到该类所在文件的位置并引入该文件.为了更容易看出代码思路 ...

  6. webpack之深入浅出externals

    我们通常在做项目时可能会把第三方库打包到bundle中,比如下面这张图 如果不想把第三方库打包到bundle中,这就有了externals.官方的使用externals比较简单,只需三步-- 1.在H ...

  7. selenium 定位input输入框下的选择项

    今天的问题与下图中的类似 这是一个input型输入框,当我点击或输入值时,输入框下方会显示选择项帮助快速输入,代码如下: <input class="v-input some" ...

  8. 自动化运维工具——ansible详解(一)

    ansible 简介 ansible 是什么? ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统 ...

  9. C#使用Xamarin开发可移植移动应用终章(11.获取设备信息与常用组件,开源一个可开发模版.)

    前言 系列目录 C#使用Xamarin开发可移植移动应用目录 源码地址:https://github.com/l2999019/DemoApp 可以Star一下,随意 - - 说点什么.. 本系列,终 ...

  10. HDU5983Pocket Cube

    Pocket Cube Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tota ...