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. 一款很便捷很实用的框架——vue.js

    Hello,大家好!今天给大家带来一款十分好用的框架--vue.js! Vue.js是一套构建用户界面的渐进式框架.它 只关注视图层, 采用自底向上增量开发的设计. Vue 的目标是通过尽可能简单的 ...

  2. websocket做手机页面聊天与PC页面聊天一对一的即时通讯

    当时要写这个需求的时候,很头痛,手机端页面的客服功能,相当于QQ这样一个一对一聊天室功能了,瞬间蒙蔽的我也不知道用什么去写这个东西,一开始用ajax,定时器去写,写着写着发现这尼玛不在同一个页面怎么做 ...

  3. formData实现图片上传

    前言 在 上一篇 已经实现了图片预览,那么如何上传图片呢?有两种思路: 1.将图片转化为dataURL(base64),这样就成为了一串字符串,再传到服务端.不过这样缺点很多,数据量比转换之前增加1/ ...

  4. listview相关代码整理

    虽然listview已经慢慢被替代了,  不过还是整理下 , 留作纪念吧 /** * 获取 listview 实际滚动的距离. [ 相对于listview的第一个项目左上角.] * * @return ...

  5. jq获取被选中的option的值。jq获取被选中的单选按钮radio的值。

    温故而知新,一起复习下jq的知识点. (1) jq获取被选中的option的值 <select id="select_id"> <option value=&qu ...

  6. postman接口测试系列:接口参数化和参数的传递

    接着上一个章节时间戳和加密继续,上一节中我们使用Pre-Request Script可以正确获取时间戳和加密后的数据,接口响应结果也达到了预期目标.这里先简单说明一下接口的用例设计的测试点,截图所示 ...

  7. 十二、Hadoop学习笔记————Hive的基本原理

    一般用户用CLI(命令行界面)接口,元数据库含有表结构 单用户.多用户.远程服务 生成db文件,只能单客户端使用数据库 多用户是最常用的使用模式 配置与多用户一致 数据格式用户自定义 所有的表都存于改 ...

  8. 关于Unity里动态加载图片

    Resources.Load 使用该方法可以动态加载资源 过程: 1.首先需要在Project面板里创建一个名为Resources的文件夹(名字必须是这个 不能写错啊) 2.把要加载的游戏对象放到该目 ...

  9. CentOS7操作系统参数优化

    生产环境配置需要标准化,将常用操作写成脚本用于操作系统的初始化. #!/bin/bash #Date:2017 #This Script is for centos7.3 init #01.配置yum ...

  10. Maven项目pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径)

    在今天的学习Maven项目中遇到的这个错误:pom.xml文件报xxx\target\classes\META-INF\MANIFEST.MF (系统找不到指定的路径) 在Maven项目学习中,缓存问 ...