redis持久化 (rdb

时间:2022-09-12 14:33:09

RDB(快照持久化)

RDB(redis database),可以理解为快照/内存快照,RDB持久化过程是将当前进程中的数据生成快照存储到硬盘中

触发机制
RDB持久化的触发机制分为两种,手动触发和自动触发。

手动触发
执行save和bgsave两个命令可以手动触发RDB持久化
- save命令会阻塞当前服务器,直到RDB完成为止,如果数据量大的话会造成长时间的阻塞,线上环境一般禁止使用
- bgsave很好理解,就是background save,执行bgsave命令时Redis进程会fork一个子进程来完成RDB的过程,完成后自动结束,所以Redis主进程阻塞时间只有fork阶段的那一下。相对于save,阻塞时间很短。

自动触发
在redis.config配置文件里可以配置自动触发,配置方式如下:

这个配置的规则指的是在seconds秒内发生changes次写操作,就会自动进行一次bgsave,例如:

AOF(持久化)

AOF(append only file),以日志的方式记录每次写命令,服务重启的时候重新执行AOF文件中的命令来恢复内存数据。因为解决了数据持久化实时性的问题,所以目前AOF是Redis持久化的主流方式。

开启AOF
AOF默认是关闭的,可以在redis.conf配置文件中添加下面配置开启AOF

appendonly yes

解决aof文件过大

bgrewriteaof重写