Redis 持久化 命令

本笔记主要记录redis持久化命令。
 
1.save
可用版本: >=1.0.0
时间复杂度: O(N),N为要保存到数据库中key的数量
命令格式: save
作用:
SAVE 命令执行一个同步保存操作,将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘。
一般来说,在生产环境很少执行 SAVE 操作,因为它会阻塞所有客户端,保存数据库的任务通常由 BGSAVE 命令异步地执行。然而,如果负责保存数据的后台子进程不幸出现问题时, SAVE 可以作为保存数据的最后手段来使用。
返回值:
保存成功返回OK。
 
2.bgsave
可用版本: >=1.0.0
时间复杂度: O(N),N为要保存到数据库中key的数量
命令格式: bgsave
作用:
在后台异步(Asynchronously)保存当前数据库的数据到磁盘。
BGSAVE 命令执行之后立即返回  ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。
客户端可以通过 LASTSAVE 命令查看相关信息,判断 BGSAVE 命令是否执行成功。
返回值:
返回反馈信息。
 
3.bgrewriteaof
可用版本: >=1.0.0
时间复杂度: O(N),N为要追加到AOF文件中的数据数量
命令格式: bgrewriteaof
作用:
执行一个AOF文件重写操作。重组会创建一个当前AOF文件的体积优化版本。
即使BGREWRITEAOF执行失败,也不会有任何数据丢失,因为旧的AOF文件在BGREWRITEAOF成功之前不会被修改。
初始化操作只会在没有其他持久化工作在后台执行时被触发,则:
如果Redis的子进程正在执行快照的保存工作,那么AOF重写的操作会被预定(预定),等到保存工作完成之后再执行AOF转换。在这种情况下,BGREWRITEAOF的返回值仍然是OK,但还会加上一条额外的信息,说明BGREWRITEAOF要等到保存操作完成之后才能执行。在Redis的2.6或以上的版本,可以使用INFO [部分]命令查看BGREWRITEAOF是否被预定。
如果已经有别的AOF文件重写在执行,那么BGREWRITEAOF返回一个错误,并且这个新的BGREWRITEAOF请求也不会被预定到下次执行。
从Redis 2.4开始,AOF由Redis自行触发,BGREWRITEAOF仅用于手动触发重新操作。
返回值:
反馈信息。
 
4.lastsave
可用版本: >=1.0.0
时间复杂度: O(1)
命令格式: script kill
作用:
返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示。
返回值:
一个 UNIX 时间戳。
 
作者:红雨
出处:https://www.cnblogs.com/52why
微信公众号: 红雨python
原文地址:https://www.cnblogs.com/52why/p/14356760.html