我正在尝试减慢Redis的启动过程,以便在我们启动命令来启动Redis服务器时执行相同的操作
info persistence
它应该显示Loading:1,但现在我正在
loading:0
rdb_changes_since_last_save:1024
rdb_bgsave_in_progress:0
rdb_last_save_time:1530558451
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:-1
rdb_current_bgsave_time_sec:-1
rdb_last_cow_size:0
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
aof_last_cow_size:0
答案 0 :(得分:1)
由于我从@ItamarHaber的提示中获得了新信息,因此我不得不重写此答案的某些部分
您可以安全地发出INFO PERSISTENCE
并获得loading:1
在我的计算机上加载2GB db(磁盘上500mb)的RDB快照需要15秒(仅供参考)。
在启动期间,Redis重播操作(它可能进行压缩,删除覆盖相同键的操作),以使DB状态恢复到关机前的状态。这意味着您可以得到一个有意义的答案(如上所述),或者这样:
BUSY Redis忙于运行脚本。您只能致电SCRIPT KILL或SHUTDOWN NOSAVE。
如果服务器历史记录中包含一些大型LUA脚本。因此,使用此配置时,您需要意识到这一点或使用竞争性不同的方法来检查Redis是否准备就绪:
tail -f
到Redis日志文件并查找以下行:
oO0OoO0OoO0Oo Redis正在启动oO0OoO0OoO0Oo
和
准备接受连接
介于两者之间的时间是Redis启动并加载保存的数据的时间。