首页 > 代码库 > 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的持久化