首页 > 代码库 > Redis基础学习(四)—Redis的持久化

Redis基础学习(四)—Redis的持久化

一、概述

     Redis的强大性能很大程度上都是因为数据时存在内存中的,然而当Redis重启时,所有存储在内存中的数据将会丢失,所以我们要将内存中的数据持久化。

Redis支持两种数据持久化的方式: RDB方式AOF方式。

(1)RDB方式会根据配置的规则定时的将内存中的数据持久化到硬盘上。

(2)AOF则是在每次执行写命令之后将命令记录下来。

 

1.RDB方式

     RDB方式的持久化是通过快照的方式完成的。当符合某种规则时,会将内存中的数据全部生成一个副本存储在硬盘上,Redis会在以下几种情况下对数据进行快照:

a: 根据配置的规则自动快照。

b: 用户执行save、bgsave命令。

c: 执行flushall命令。

d: 执行复制(replication)。

(1)根据配置自动快照

     Redis允许用户自定义快照条件,当满足条件时自动执行快照,快照规则的配置方式如下:

技术分享

 

(2)执行save、bgsave命令

     我们可以手动执行save、bgsave命令主动进行快照操作。

save: 当执行save命令时,Redis同步进行快照操作,期间会阻塞所有来自客户端的请求,所以放数据库数据较多时,应该避免使用该命令;

bgsave: 从命令名字就能看出来,这个命令与save命令的区别就在于该命令的快照操作是在后台异步进行的,进行快照操作的同时还能处理来自客户端的请求。执行bgsave命令后Redis会马上返回OK表示开始进行快照操作,如果想知道快照操作是否已经完成,可以使用lasesave命令返回最近一次成功执行快照的时间,返回结果是一个Unix时间戳。

Redis基础学习(四)—Redis的持久化