1、写操作的流程

2、RDB快照-redis的第一个持久化策略

第一种是以快照的形式持久化到本地磁盘(RDB文件)。

持久化策略是:

1.配置(save N M)在N秒内,redis至少发生M次修改,则redis持久化快照到本地磁盘。

  • after 900 sec (15 min) if at least 1 key changed

2.手动持久化:手动save或bgsave快照。

  • 工作原理:当redis进行持久化时,redis会fork出一个子进程,然后在子进程中循环所有的数据,将数据写入一个临时RDB文件中;当子进程完成写操作时,会将原来的RDB替换掉。

RDB持久化常用配置项

dbfilename dump.rdb
dir ./
save <seconds> <changes>

不足:一旦数据库出现问题(如直接关闭服务器),那我们的RDB文件中保存的数据并不是全新的,从上次RDB文件生成到Redis停机这段时间的数据全部丢掉了。 对于可以忍受的业务,推荐使用RDB方式进行持久化,因为开启RDB的代价并不高。但是对于对数据安全性要求极高的应用,Redis引入了:AOF日志。

3、AOF日志

AOF日志,全称append only file,是一个追加写入的日志文件,是可识别的纯文本,内容就是一个个的redis标准命令。

AOF重写:AOF rewrite
Redis AOF持久化常用配置项
appendonly yes
appendfilename appendonly.aof appendfsync everysec 三种不同的刷新模式
appendfsync always
appendfsync no no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
RDB和AOF持久化的区别

RDB特性:

fork一个进程,遍历Hashtable,利用copy-on-write,把整个db dump保存下来。
save,shutdown,slave之前crash,则中间的操作无法恢复。

AOF特性:

把写操作指令,持续的写入一个类似日志文件。
粒度较小,crash后,只有crash前没有来得及做日志的操作无法恢复。

二者区别:

AOF是持续用日志记录写操作,crash后利用日志恢复;
RDB是平时写操作时不触发写,只有达到写操作节点或手动提交save命令或关闭命令时,才会触发备份操作。

redis学习系列——redis持久化的更多相关文章

  1. 分布式缓存技术redis学习系列(五)——redis实战(redis与spring整合,分布式锁实现)

    本文是redis学习系列的第五篇,点击下面链接可回看系列文章 <redis简介以及linux上的安装> <详细讲解redis数据结构(内存模型)以及常用命令> <redi ...

  2. 分布式缓存技术redis学习系列(四)——redis高级应用(集群搭建、集群分区原理、集群操作)

    本文是redis学习系列的第四篇,前面我们学习了redis的数据结构和一些高级特性,点击下面链接可回看 <详细讲解redis数据结构(内存模型)以及常用命令> <redis高级应用( ...

  3. redis学习系列

    redis学习系列 基本看完 最近在看redis的代码,简单记录下自己认为重要的点,自己写比较费时间的,我会把查到的资料贴出来方便查看 淘宝的redis内存分析 http://www.searchtb ...

  4. 分布式缓存技术redis学习系列

    分布式缓存技术redis学习系列(一)--redis简介以及linux上的安装以及操作redis问题整理 分布式缓存技术redis学习系列(二)--详细讲解redis数据结构(内存模型)以及常用命令 ...

  5. C# Redis学习系列三:Redis配置主从

    Redis配置主从 主IP :端口      192.168.0.103 6666 从IP:端口       192.168.0.108 3333 配置从库 (1)安装服务: redis-server ...

  6. Python操作redis学习系列之(集合)set,redis set详解 (六)

    # -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...

  7. C# Redis学习系列二:Redis基本设置

    上一篇:C# Redis学习系列一:Redis的认识.下载.安装.使用 一.redis 设置密码 使用下载好的 redis-cli.exe 指令: 1.设置密码: config set require ...

  8. 分布式缓存技术redis学习系列(三)——redis高级应用(主从、事务与锁、持久化)

    上文<详细讲解redis数据结构(内存模型)以及常用命令>介绍了redis的数据类型以及常用命令,本文我们来学习下redis的一些高级特性. 安全性设置 设置客户端操作秘密 redis安装 ...

  9. Redis学习系列一Linux环境搭建

    1.简介 Redis是互联网技术架构中在存储系统中用的最广泛的中间件,是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一.所以Redis是.Net技术开发必须掌握的技能之一.所以通过这个系列的随 ...

随机推荐

  1. 深入java虚拟机学习 -- 类的加载机制(续)

    昨晚写 深入java虚拟机学习 -- 类的加载机制 都到1点半了,由于第二天还要工作,没有将上篇文章中的demo讲解写出来,今天抽时间补上昨晚的例子讲解. 这里我先把昨天的两份代码贴过来,重新看下: ...

  2. 使用Websocket框架之GatewayWorker开发电商平台买家与卖家实时通讯

    前段时间公司提了一个新的需求,在商品的详情页要实现站内买家和商品卖家实时通讯的功能以方便沟通促成交易,要开发此功能当时首先考虑到的就是swoole和workerman了,从网上大概了解了一下关于这两款 ...

  3. hihocoder 1054 滑动解锁 dfs

    详细分析见滑动解锁分析 AC代码 #include <cstdio> #include <cmath> #include <cctype> #include < ...

  4. Machine Learning|Andrew Ng|Coursera 吴恩达机器学习笔记

    Week1: Machine Learning: A computer program is said to learn from experience E with respect to some ...

  5. Android虚拟机安装

    由于虫师那边的源估计到期了,我又找了一波. 打开SDK Manager.exe, 就在安卓目录下. 点击Tools--Options进入配置页面 mirrors.neusoft.edu.cn 配置如下 ...

  6. 基础--Redis在Windows环境下的安装

    1. 安装Redis 1.1 下载安装包 https://github.com/ServiceStack/redis-windows#3-run-the-redis-serverexe-using-t ...

  7. hbase 命令

    HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服 ...

  8. Win10电脑经常自动掉线、自动断网的解决方法

    近期一客户称自己使用电脑上网的时候,过一段时间莫名其妙的出现自动掉线.自动断网的情况,那么遇到这个问题该怎么办?下面装机之家分享一下Win10电脑经常自动掉线.自动断网的解决方法,以Win7系统为例. ...

  9. 定义一个Matrix类,实现矩阵的加法和乘法

    #include<iostream> using namespace std; class Matrix { int row;//矩阵的行 int col;//矩阵的列 int **a;/ ...

  10. Caffe、TensorFlow、MXnet三个开源库对比

    库名称 开发语言 支持接口 安装难度(ubuntu) 文档风格 示例 支持模型 上手难易 Caffe c++/cuda c++/python/matlab *** * *** CNN ** MXNet ...