redis进阶: 数据持久化

栏目: 数据库 · 发布时间: 5年前

内容简介:redis是内存数据库,即数据库状态都是存储于内存中,因此,当服务器重启或者断开后,数据便会丢失;为了解决数据丢失问题,便需要将数据从内存保持到磁盘中,这就是redis的数据持久化目前,redis实现了两种数据库持久化方案,一种是redis database,即将数据库的内容(key-value)保存为压缩的二进制文件

redis是内存数据库,即数据库状态都是存储于内存中,因此,当服务器重启或者断开后,数据便会丢失;为了解决数据丢失问题,便需要将数据从内存保持到磁盘中,这就是 redis 的数据持久化

目前,redis实现了两种数据库持久化方案,一种是 RDB ,另一种是 AOF ,让我们来聊聊这两种方案

RDB

redis database,即将数据库的内容(key-value)保存为压缩的二进制文件

即便redis服务进程退出,但是RDB文件仍然存在,这样当redis启动时便会自动载入RDB文件以此保证数据不丢失,其流程如下 redis进阶: 数据持久化

1.手动生成RDB文件

redis有两个命令用于生成RDB文件,即 SAVEBGSAVE ,这两个指令的用途都是一样的,唯一的区别在于

SAVE
BGSAVE

其实现源码位于 rdb.c 中的 rdbSave()rdbSaveBackground() 函数,有兴趣的小伙伴可以去看看

从区别来看,很明显,在执行RDB文件的创建首选指令 BGSAVE

2.自动生成RDB文件

一般来说RDB文件的生成并不需要用户去手动执行,redis提供了 save 指令允许用户设置执行条件: 在多少时间内服务器进行多少次修改 ;例如指令 save 500 1 即表示服务器如果满足在500秒之内对数据库执行了至少1次修改,那么就会执行RDB文件的生成

在redis的 serverCron() 时间事件中会去判断是否满足条件并执行RDB文件生成

3.自动加载RDB

RDB文件的生成可以手动执行,但是redis目前并没有提供手动加载RDB文件的操作指令,即RDB文件的载入工作是 在服务器启动的时候自动执行 的,并且在服务器载入RDB文件期间会一直处于堵塞状态

AOF

Append Only File,通过将redis服务器所执行的写指令保存为AOF文件来记录数据库状态

1.何时写入

当用户执行redis写操作时,便会将指令保存到AOF文件中,其流程如下 redis进阶: 数据持久化

2.关于AOF重写

问题:随着数据库服务器运行,AOF文件中的内容会越来越多,因为每一条写指令都需要记录,也因此执行AOF文件来进行数据还原的时间也就越久

解决方案:为了解决这个问题,redis提供了AOF重写 BGREWRITEAOF 指令;原理即 从数据库中读取键现在的值,然后用一条指令去记录键值对,代替之前的多余命令 ,并重新生成一套写指令存储为新的AOF文件,并替换掉旧的AOF文件,这样新AOF文件就不会存在过多的冗余指令,体积包括执行时间也会小很多

3.何时加载AOF

当服务器重启动时会先检测是否有AOF文件,如果有就会载入AOF文件来实现数据一致,如果没有AOF则会检测是否执行RDB载入流程

加载

当服务器启动时会先检测是否有AOF文件,如果有则加载AOF文件,如果没有则会判断是否有RDB文件存在,如果有RDB文件,则加载RDB文件

redis进阶: 数据持久化

相关文档:

redis设计与实现

redis进阶: 过期删除策略

redis进阶: redisObject对象详解

原文地址:


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

信号与噪声

信号与噪声

[美] 纳特•西尔弗 / 胡晓姣、张新、朱辰辰 / 中信出版社 / 2013-8 / 69.00元

【编辑推荐】 从海量的大数据中筛选出真正的信号, “黑天鹅”事件也可提前预知! “本书将成为未来十年内最重要的书籍之一。”——《纽约时报》 “对于每一个关心下一刻可能会发生什么的人来说,这都是本必读书。”——理查德•泰勒 《华尔街日报》2012年度10本最佳非虚构类图书之一 《经济学人》杂志2012年度书籍 亚马逊网站2012年度10本最佳非虚构类图书之一......一起来看看 《信号与噪声》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器