Redis 持久化命令主要是用于手动将 Redis 数据持久化到磁盘,在后续章节将详细介绍 Redis 如何自动触发持久化。
下面演示手动执行 save 命令将 Redis 服务中的数据持久化到磁盘。如下:
127.0.0.1:6379> save OK
注意:默认将数据保存到 dump.rdb 文件中,数据文件名称可以通过修改 redis.conf 配置文件进行修改,如下:
# The filename where to dump the DB # 默认为 dump.rdb #dbfilename dump.rdb # 修改为 mydump.rdb dbfilename dump.rdb
下面列出了 redis 持久化相关的命令。
该命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。语法如下:
SAVE
实例:
127.0.0.1:6379> save OK
该命令用于告知 Redis 启动一个子进程,在后台异步保存当前数据库的数据到磁盘。
注意,BGSAVE 命令执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。语法如下:
BGSAVE
实例:
127.0.0.1:6379> bgsave Background saving started
该命令用于手动触发异步执行 AOF(AppendOnly File) 文件重写操作,重写会创建一个当前 AOF 文件的优化版本,一般情况下体积会更小。
注意,即使 bgrewriteaof 执行失败,也不会有任何数据丢失。因为旧的 AOF 文件在 bgrewriteaof 执行成功之前不会被修改。从 Redis 2.4 开始, AOF 重写由 Redis 自行触发, BGREWRITEAOF 仅仅用于手动触发重写操作。语法如下:
BGREWRITEAOF
实例:
127.0.0.1:6379> bgrewriteaof Background append only file rewriting started
更多关于 AOF 的知识后续章节将详细介绍。