Redis持久化

Redis的高性能是由于所有的数据都存储在内存当中,为了使Redis在重启之后,仍然能保证数据不丢失,那么就需要将数据从内存当中同步到硬盘上,这个过程称为持久化。

持久化方式:RDB、AOF

redis持久化方法有哪些 redis持久化详解_数据

 

RDB持久化:默认的持久化方式

在指定时间间隔内,将数据的快照写入磁盘中

AOF持久化

以日志的形式,记录服务器执行的每一步操作

在Redis服务器启动之初,读取该文件,来重新构建数据库

无持久化,就是将redis当做一个缓存的机制

同时使用RDB和AOF

 

1 RDB持久化

优势:

1.使用这种备份策略,Redis数据库将只包含一个数据文件。

2.一旦系统出现灾难性的故障,可以非常容易的进行回滚。比如每小时就将RDB文件备份一份出来,将一个RDB文件转移到其他存储介质上,发生故障时,将要恢复的RDB文件再放回来。

3.性能最大化。Redis服务器恢复持久化数据,是另外开一个子进行进行恢复的,不会阻碍服务器主进程的操作。

4.相比AOF,如果数据量很大,这种方式恢复效率更高。

 

劣势

1.如果想要最大程度的避免数据的丢失,RDB不是很好的选择。系统可能会在定时持久化之前出现宕机的情况,RDB还来不及保备份数据,数据就丢失了。

2.RDB是通过子进程来完成数据持久化工作,如果数据量过大的情况下,可能会导致整个服务器需要停止几百毫秒。

 

RDB配置:

redis安装目录:Redis.conf

持久化策略

redis持久化方法有哪些 redis持久化详解_redis持久化方法有哪些_02

 

900秒内如果有一条写入指令,则900s时产生一次快照

300秒内如果有十条写入指令,则300s时产生一次快照

60秒内有一万条写入指令,则进行一次备份

redis持久化方法有哪些 redis持久化详解_redis_03

当备份进程出错的时候,主进程停止接收新的写入操作,这样做是为了保护持久化的数据一致性

 

redis持久化方法有哪些 redis持久化详解_数据_04

在备份的时候,需要对RDB文件进行压缩后才保存,建议设置为no

 

持久化文件保存的位置:

redis持久化方法有哪些 redis持久化详解_Redis_05

 

8.2 AOF持久化

redis持久化方法有哪些 redis持久化详解_持久化_06

 

AOF配置

redis安装目录:Redis.conf

AOF默认是关闭的

打开AOF:

redis持久化方法有哪些 redis持久化详解_持久化_07

 

AOF文件默认的名字:

redis持久化方法有哪些 redis持久化详解_redis持久化方法有哪些_08

 

配置AOF文件的写入方式:

redis持久化方法有哪些 redis持久化详解_持久化_09

 

always:一旦缓存区的数据发生变化,就将缓存区内容写入AOF中

everysec:将缓存区内容,每隔一秒写入AOF中,推荐

no:将写入AOF的方式交由操作系统来决定,一般操作系统会等缓存区被填满,才会同步数据到磁盘当中

 

修改配置文件并重新启动redis:

redis持久化方法有哪些 redis持久化详解_持久化_10

redis持久化方法有哪些 redis持久化详解_数据_11

 

 

flushall 清空数据库

 

打开aof日志文件

redis持久化方法有哪些 redis持久化详解_redis_12

redis持久化方法有哪些 redis持久化详解_持久化_13

 

 

数据库还原:可以将flushall删除

再重新启动redis,原来我们flushall前的数据就回来了

 

redis持久化方法有哪些 redis持久化详解_数据_14