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. 表字符集latin1,client如何查看中文字符

    表结构如下: . row *************************** Table: my_data_7e Create Table: CREATE TABLE `my_data_7e` ( ...

  2. 69、django之Form组件

    本篇导航: 小试牛刀 Form类 常用选择插件 自定义验证规则 初始化数据 Django的Form主要具有一下几大功能: 生成HTML标签 验证用户数据(显示错误信息) HTML Form提交保留上次 ...

  3. JAVA提高十四:HashSet深入分析

    前面我们介绍了HashMap,Hashtable,那么还有一个hash家族,那就是HashSet;在讲解HashSet前,大家先要知道的是HashSet是单值集合的接口,即是Collection下面的 ...

  4. Winform 中 dataGridView 导出到Excel中的方法总结

    最近,在做CS端数据导出到Excel中时网上找了很多代码感觉都不是自己想要的,通过自己的整理归纳得到一个比较通用的方法,就给大家分享一下: 该方法需要用到两个参数(即对象),一个  DataGridV ...

  5. 初学时遇到的小问题Your content must have a ListView whose id attribute is 'android.R.id.list'

    问题提出 错误提示:Your content must have a ListView whose id attribute is 'android.R.id.list' 关于解决Your conte ...

  6. dnsmasq服务的安装与配置

    在ubuntu16.04上安装dnsmasq服务,在本地做泛域名解析 安装 $ apt-get install dnsmasq -y $ /etc/init.d/dnsmasq start 配置 Dn ...

  7. Android-DataBinding入门1

    1.需要开启DataBinding功能: 在build.gradle配置: android{ dataBinding{ enabled = true } } 2.布局 布局中,根节点要以layout开 ...

  8. ThinkPHP中的Model模型

    一     实例化模型对象 ①实例化通用模型 例:$goods_model = new \Model\GoodsModel(); $goods_Model = D('Goods'); ②实例化基例模型 ...

  9. Python入门 - 环境搭建

    因为本人用的mac系统,所以这里只演示mac系统下python环境的搭建,至于windows和linux系统有类似安装过程,可以参考官方文档. 第一步: 安装python3.6 # Mac OS X ...

  10. 【转】《高级前端3.6》JavaScript多线程——Concurrent.Thread.js, WebWork

    原文链接:http://www.cnblogs.com/woodk/articles/5199536.html JavaScript多线程,在HTML5 WebWork没出现之前很多人都是用Concu ...