redis中的RDB持久化详解

1. 如何在redis中配置RDB持久化文件

在redis持久化中  默认是开启RDB模式的。这里我们只需要对RDB进行配置即可

在上面有三个配置选项 分别是

每隔900秒  有一条key进行变更

每个300秒 有10条key进行变更

没隔60秒  有10000条key进行变更。

以上任意条达成条件后,就会重新生成一个dump.rdb文件。就是当前redis内存中完整的快照,这个操作也被称之为snapshotting,快照也可以手动调用save或者bgsave命令,同步或异步执行rdb快照生成

save可以设置为多个,也就是多个snapshotting检查点,每到一个检查点,就会去check一下,检查是否有指定数量的key发生了变更,如果有那么就会生成一个新的dump.rdb文件。

2. RDB持久化是的工作流程

(1).redis会根据自己的配置去尝试rdb快照文件。

(2) fork出一个子进程

(3)子进程会将当前的dump文件快照到 rdb临时文件当中。

(4)完成rdb快照文件的生成之后,那么就会替换以前的老快照。

3、基于RDB持久化机制的数据恢复实验数据还在,为什么?

我们在redis中存入几条数据

在使用redis-cli SHUTDOWN  停掉redis

这个时候我们进入到存放快照的目录进行查看。

可以看到数据依旧是存在的。

带出来一个知识点,通过redis-cli SHUTDOWN这种方式去停掉redis,其实是一种安全退出的模式,redis在退出的时候会将内存中的数据立即生成一份完整的rdb快照

/var/redis/6379/dump.rdb

(2)在redis中再保存几条新的数据,用kill -9粗暴杀死redis进程,模拟redis故障异常退出,导致内存数据丢失的场景这次就发现,redis进程异常被杀掉,数据没有进dump文件,几条最新的数据就丢失了

使用 kill -9 的方式杀掉redis进程。

在进入到存放快照的文件目录查看快照文件  并没有进行生成。

(3) 我们这里在做一个实验,重新对conf文件进行配置,配置成每五秒进行一次快照,在进行一次实验

设置成 没五秒有1个key进行变更那么就会生成新的dump.db文件

使用kill杀死进程过后  我们可以看到快照文件是生成了的

原文地址:https://www.cnblogs.com/malike/p/10441145.html

时间: 2024-10-03 22:51:22

redis中的RDB持久化详解的相关文章

Redis数据库操作、持久化详解及内存管理基础概览

Redis数据库操作.持久化详解及内存管理基础概览 前言 ? 上篇主要介绍了redis的编译安装流程以及redis常用的两个命令工具,本文主要讲述redis的数据库相关操作:增删改查等等,以及简述理解redis持久化原理和配置操作. Redis数据库操作 Redis 数据库常用命令(一般大小写均可)--比较简单,直接介绍语法,自行尝试验证当然这些只是冰山一角,例如不同的数据类型对应的操作都不一样,有研究兴趣的可以深入了解.单个数据库命令: set--写入数据 语法:set key value g

redis 安装配置及持久化详解

一.redis简介 二.redis安装 三.redis配置文件详解 四.redis持久化详解 1.redis 简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询. Redi

Redis教程(十):持久化详解

转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/137.html 一.Redis提供了哪些持久化机制: 1). RDB持久化:    该机制是指在指定的时间间隔内将内存中的数据集快照写入磁盘.        2). AOF持久化:    该机制将以日志的形式记录服务器所处理的每一个写操作,在Redis服务器启动之初会读取该文件来重新构建数据库,以保证启动后数据库中的数据是完整的.    3). 无持久化:    我们可以

redis中setbit bitcount命令详解

bitmap,位图,即是使用bit. redis字符串是一个字节序列. 1 Byte = 8 bit SETBIT key offset value 设置或者清空key的value(字符串)在offset处的bit值. 那个位置的bit要么被设置,要么被清空,这个由value(只能是0或者1)来决定.当key不存在的时候,就创建一个新的字符串value.要确保这个字符串大到在offset处有bit值. offset 表示bit的位置数,从0开始计,1字节的bit数组最大为7 . SETBIT K

redis服务部署及配置详解

Redis是一种高级key-value数据库.它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富.有字符串,链表,集合和有序集合.支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能.所以Redis也可以被看成是一个数据结构服务器. Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为"半持久化模式"):也可以把每一次数据变化都写入到一个append only file(aof)里面(这称为"全

nosql----redis持久化详解

nosql----redis持久化详解 redis持久化的意义在于故障恢复 redis的数据是储存在内存的,假如redis突然down掉,又或者服务器主机突然断电故障.这时候内存里面的数据就会全部丢失了. 这时候大量的请求在缓存中都无法命中,在redis中无法找到缓存数据,这些请求就会去到后方的mysql,持续高压高并发的状态使mysql也陷入崩溃的状态.到这里,就算想恢复redis的数据也做不到了,因为redis的数据就是从mysql来的.这就是缓存的雪崩效应. 持久化就是将储存在内存的数据,

redis.conf 配置文档详解

redis 配置文档详解. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411

iOS中MVC等设计模式详解

iOS中MVC等设计模式详解 在iOS编程,利用设计模式可以大大提高你的开发效率,虽然在编写代码之初你需要花费较大时间把各种业务逻辑封装起来.(事实证明这是值得的!) 模型-视图-控制器(MVC)设计模式是被大家广为熟悉和使用的模式,实际上在移动开发中尤其ios开发中,这种模式被发挥到淋漓尽致 MVC设计模式包括三个部分:模型.视图和控制器. 模型包含数据.信息,逻辑,或对象被认为是部分的业务层的iOS应用. 视图包含所有的用户信息的组件,如文本区域,按钮,滑块,被认为是表示层的一个iOS应用.

Redis实现之RDB持久化(一)

RDB持久化 Redis是一个键值对数据库服务器,服务器中通常包含着任意个非空数据库,而每个非空数据库中又可以包含任意个键值对,为了方便起见,我们将服务器中的非空数据库以及它们的键值对统称为数据库状态.举个栗子,图1-1展示了一个包含三个非空数据库的Redis服务器,这三个数据库以及数据库中的键值对就是该服务器的数据库状态 图1-1   数据库状态示例 因为Redis是内存数据库,它将自己的数据库状态存储在内存里面,所以如果不想办法将存储在内存中的数据库状态保存到磁盘中,那么一旦服务器进程退出,