文章目录
bgsave命令,Redis父进程判断当前是否存在正在执行的子进程,如RDB/AOF子进程,如果存在bgsave命令直接返回。
fork操作创建子进程,fork操作过程中父进程会阻塞,通过info stats命令查看latest_fork_usec选项,可以获取最近一个fork操作的耗时,单位为微秒。
“Background saving started”信息并不再阻塞父进程,可以继续响应其他命令lastsave命令可以获取最后一次生成RDB的时间,对应info统计的rdb_last_save_time选项。info Persistence下的rdb_*相关选项。save m n”。表示m秒内数据集存在n次修改
时,自动触发bgsave。
redis.conf中配置save 900 1:表示900 秒内如果至少有 1 个 key 的值变化,则保存
save 300 10:表示300 秒内如果至少有 10 个 key 的值变化,则保存
save 60 10000:表示60 秒内如果至少有 10000 个 key 的值变化,则保存dbfilename决定。redis.conf中修改appendonly yes,默认不开启。AOF文件名通过appendfilename配置设置,默认文件名是appendonly.aof。保存路径同RDB持久化方式一致,通过dir配置指定。AOF的工作流程操作:命令写入(append)、文件同步(sync)、文件重写(rewrite)、重启加载(load)aof_buf(缓冲区)中。同步策略)redis.conf文件中appendonly yes # 开启appendfilename appendonly.aofredis.conf配置文件中配置即可appendfsync控制,可以在配置文件中配置,三种策略如下:
appendfsync always appendfsync everysec appendfsync nobgrewriteaof命令。auto-aof-rewrite-min-size和auto-aof-rewrite-percentage参
数确定自动触发时机。
auto-aof-rewrite-min-size:表示运行AOF重写时文件最小体积,默认为64MB。auto-aof-rewrite-percentage:代表当前AOF文件空间(aof_current_size)和上一次重写后AOF文件间(aof_base_size)的比值。info stats统计中查latest_fork_usec指标获取最近一次fork操作耗时,单位微秒。