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. 泛型学习第三天——C#读取数据库返回泛型集合 把DataSet类型转换为List<T>泛型集合

    定义一个类: public class UserInfo    {        public System.Guid ID { get; set; } public string LoginName ...

  2. 批量测试邮箱登录python脚本

    ---恢复内容开始--- #!/usr/bin/env python #-*- coding:utf-8 -*- import smtplib import sys import time impor ...

  3. spring boot 基础学习

    构建微服务:Spring boot 入门篇 http://www.cnblogs.com/ityouknow/p/5662753.html SpringBoot入门系列:第一篇 Hello World ...

  4. vue自定义事件 子组件把数据传出去

    每个 Vue 实例都实现了事件接口(Events interface),即: 使用 $on(eventName) 监听事件 使用 $emit(eventName) 触发事件 1.使用v-on绑定自定义 ...

  5. cpu和gpu的区别和联系是什么

    cpu和gpu的区别和联系是什么 一.总结 一句话总结:CPU:复杂任务,核少,做串行,计算能力只是CPU很小的一部分,处理复杂逻辑: GPU:简单任务,核多,做并行(大吞吐量),做显卡的图象单元计算 ...

  6. Nodejs+MongoDB+Bootstrap+esj搭建的个人简易博客

    github:https://github.com/yehuimmd/myNodeBloy Nodejs+MongoDB+jQuery+Bootstrap-esj搭建的个人简易博客 主要功能 前台 : ...

  7. php开发工程师面必问题

    随着培训机构的增加,越来越多的php从业者流入市场,从而影响了php就业环境.公司对人才的要求越来越高,而技术者本身也要技术过硬,学习越来越多的东西,因为只有这样,你才能跑在别人前面,才不被市场抛弃, ...

  8. 显示隐藏文件 osx 10.10

    教程原文:http://m.blog.csdn.net/blog/i0S123tianzhuang/25736223 终端命令 Finder显示隐藏文件: defaults write com.app ...

  9. stl_algobase.h

    stl_algobase.h // Filename: stl_algobase.h // Comment By: 凝霜 // E-mail: mdl2009@vip.qq.com // Blog: ...

  10. Git 常用命令详解(三)

    转自:http://www.cnblogs.com/1-2-3/archive/2010/07/18/git-commands.html