1,快照持久化

1简介

     redis可以通过创建快照来获得某个时间点上的内存内容的数据副本,有了副本之后,就可以将副本发送到其他redis服务器上从而创建相同数据的从服务器,同时快照留在原地以便重启redis的时候实现数据恢复。

2配置

     save 60 1000  快照生成策略  如果服务器距离上一次成功生成快照已经超过六十秒,并且期间执行了至少1000次写操作。
     stop-writes-on-bgsave-error yes 创建快照文件失败后是否继续执行写命令
     rdbcompression yes   是否对快照文件进行压缩
     dbfilename dump.rdb  快照文件名称
     dir /opt/redis-2.8.13/dmp/  持久化文件保存的路径

3快照文件生成的时机

     1,向redis发送bgsave命令,redis会调用fork来创建一个子进程,子进程负责创建快照,父进程继续处理命令请求。
     2,向redis发送save命令,父进程停止响应其他命令,开始进行快照创建,save命令通常不用,一般在没有足够内存执行bgsave的时候或者让客户端等待也没关系的时候使用。
     3,根据用户设置的save 策略配置信息,进行执行。如果配置多个,只要满足一个就执行。
     4,redis接收到shutdown或者标准term命令的时候,会触发save命令,创建快照。
     5,当从服务器链接到主服务器并且发送sync命令来同步数据的时候,并且这个时候主服务器没有在执行bgsave或者不是刚刚执行完bgsave的话,就创建个快照,以供复制使用。
     当内存数据量不那么大的时候,使用快照持久化比较不错。但是如果数据量达到了十几个G以上的那种,执行一个bgsave会特别慢,save的话会快点,但是也会耗费比较多时间,并且快照文件也比较大。这个时候就需要使用AOF持久化了。

2,AOF持久化

1简介

     简单来说,AOF持久化会将执行的写命令写到AOF文件末尾来记录所有的变化。redis只要从头到尾执行一次AOF文件的命令,就可以进行数据恢复了。

2,配置

     appendonly yes  是否打开AOF持久化
     appendfilename "appendonly.aof"  持久化文件名称
     # appendfsync always  每次redis写命令都进行持久化,这样会严重降低redis速度,但是数据基本不丢失
     appendfsync everysec     每秒进行一次,丢失数据也是一秒内的
     # appendfsync no     让操作系统自己决定什么时候执行
     no-appendfsync-on-rewrite no
     auto-aof-rewrite-percentage 100  当aof文件比上次重写之后体积大了至少100%,进行重写
     auto-aof-rewrite-min-size 64mb     当体积岛屿64M的时候重写
     上面这两个条件同时符合的时候才重写。
     dir /opt/redis-2.8.13/dmp/  持久化文件保存的路径

3,AOF文件重写

     AOF文件由于会不断的追加写入命令,因此体积会越来越大,这时向redis发送bgrewriteaof命令,可以重写aof,将其中的冗余命令删除掉,减小体积,也是主进程fork出一个子进程来处理。针对这个命令也可以配置一下让redis自己维护执行。

3,数据恢复

     当redis服务器挂掉时,重启时将按照以下优先级恢复数据到内存:
     如果只配置AOF,重启时加载AOF文件恢复数据;(将rdb的配置信息都注释掉就关闭了rdb,只要不主动发送bgsave命令就不持久化了)
     如果同时 配置了RBD和AOF,启动是只加载AOF文件恢复数据;
     如果只配置RBD,启动是讲加载dump文件恢复数据。

redis学习三 redis持久化的更多相关文章

  1. Redis系列三之持久化

    一.Redis持久化 Redis是一个支持持久化的内存数据库,redis需要经常将内存中的数据同步到磁盘来保证持久化. redis提供了不同级别的持久化方法: Snapshotting(快照,默认方式 ...

  2. redis学习系列——redis持久化

    1.写操作的流程 2.RDB快照-redis的第一个持久化策略 第一种是以快照的形式持久化到本地磁盘(RDB文件). 持久化策略是: 1.配置(save N M)在N秒内,redis至少发生M次修改, ...

  3. Redis学习笔记9--Redis持久化

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

  4. redis学习(三)

    如何保障reids的数据安全和性能?   一.持久化选项 1.快照snapshotting 它可以将存在于某一时刻的所有数据都写入硬盘里面. 配置选项示例: save 60 1000 注:从最近一次创 ...

  5. Redis学习-redis概述

    最近刚刚接触了redis技术,对此有一些了解,这是简单做一点总结. Redis简介 首先,简单了解一下NoSQL(Not only sql),不要错误的理解为:没有SQL,而是不仅仅是SQL.NoSQ ...

  6. redis学习之——redis.conf配置(基本)文件学习

    # Redis configuration file example # Note on units: when memory size is needed, it is possible to sp ...

  7. Redis学习笔记~Redis主从服务器,读写分离

    回到目录 Redis这个Nosql的存储系统一般会被部署到linux系统中,我们可以把它当成是一个数据服务器,对于并发理大时,我们会使用多台服务器充当Redis服务器,这时,各个Redis之间也是分布 ...

  8. Redis学习笔记--Redis配置文件redis.conf参数配置详解

    ########################################## 常规 ########################################## daemonize n ...

  9. redis学习笔记-redis的安装

    Window 下安装 下载地址:https://github.com/MSOpenTech/redis/releases Redis 支持 32 位和 64 位.这个需要根据你系统平台的实际情况选择, ...

随机推荐

  1. Hadoop的RPC机制源码分析

    分析对象: hadoop版本:hadoop 0.20.203.0 必备技术点: 1. 动态代理(参考 :http://www.cnblogs.com/sh425/p/6893662.html )2. ...

  2. myEclipse 导入maven项目时报错

    1.先右击项目,build Path 查看是否是某个JAR出了错.去掉无用的JAR 以及修改对应的JDK版本 2.检查src源文件,查看是否是源文件出了错.发现,还真的是 导入的包上面,报错:The ...

  3. hdu 5884 Sort 队列+多叉哈夫曼树

    Sort Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Problem Des ...

  4. hdu 4737 A Bit Fun 尺取法

    A Bit Fun Time Limit: 5000/2500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Proble ...

  5. Spring Boot入门——freemarker

    使用步骤: 1.在pom.xml中添加相关依赖 <!-- 添加freemarker依赖 --> <dependency> <groupId>org.springfr ...

  6. nginx基本参数详解

    运行用户 user nobody; 启动进程,通常设置成和cpu的数量相等 worker_processes 1; 全局错误日志及PID文件 error_log logs/error.log; err ...

  7. @angular/cli项目构建--路由1

    app.module.ts import {BrowserModule} from '@angular/platform-browser'; import {NgModule} from '@angu ...

  8.  P2152 [SDOI2009]SuperGCD (luogu)

    Stein算法是一种计算两个数最大公约数的算法,是针对欧几里德算法在对大整数进行运算时,需要试商导致增加运算时间的缺陷而提出的改进算法. 算法思想: 由J. Stein 1961年提出的Stein算法 ...

  9. I.MX6 make menuconfig进入x86模式

    /************************************************************************ * I.MX6 make menuconfig进入x ...

  10. HihoCoder1105 题外话·堆(基础二叉搜索树)

    第1行为1个整数N,表示需要处理的事件数目. 接下来的M行,每行描述一个事件,且事件类型由该行的第一个字符表示,如果为'A',表示小Ho将一粒糖果放进了盒子,且接下来为一个整数W,表示这颗糖果的重量: ...