info查看持久化信息
redis-cli info persistence#?
loading:服務器是否正在載入持久化文件
rdb_changes_since_last_save:離最近一次成功生成rdb文件,寫入命令的個數,即有多少個寫入命令沒有持久化
rdb_bgsave_in_progress:服務器是否正在創建rdb文件
rdb_last_save_time:離最近一次成功創建rdb文件的時間戳。當前時間戳 – rdb_last_save_time=多少秒未成功生成rdb文件
rdb_last_bgsave_status:最近一次rdb持久化是否成功
rdb_last_bgsave_time_sec:最近一次成功生成rdb文件耗時秒數
rdb_current_bgsave_time_sec:如果服務器正在創建rdb文件,那么這個域記錄的就是當前的創建操作已經耗費的秒數
rdb_last_cow_size:RDB過程中父進程與子進程相比執行了多少修改(包括讀緩沖區,寫緩沖區,數據修改等)。
aof_enabled:是否開啟了aof
aof_rewrite_in_progress:標識aof的rewrite操作是否在進行中
aof_rewrite_scheduled:rewrite任務計劃,當客戶端發送bgrewriteaof指令,如果當前rewrite子進程正在執行,那么將客戶端請求的bgrewriteaof變為計劃任務,待aof子進程結束后執行rewrite
aof_last_rewrite_time_sec:最近一次aof rewrite耗費的時長
aof_current_rewrite_time_sec:如果rewrite操作正在進行,則記錄所使用的時間,單位秒
aof_last_bgrewrite_status:上次bgrewriteaof操作的狀態
aof_last_write_status:上次aof寫入狀態
aof_last_cow_size:AOF過程中父進程與子進程相比執行了多少修改(包括讀緩沖區,寫緩沖區,數據修改等)。
?appendfsync有三個選項:always、everysec和no:
1、選擇always的時候服務器會在每執行一個事件就把AOF緩沖區的內容強制性的寫入硬盤上的AOF文件里,可以看成你每執行一個redis寫入命令就往AOF文件里記錄這條命令,這保證了數據持久化的完整性,但效率是最慢的,卻也是最安全的;
2、配置成everysec的話服務端每執行一次寫操作(如set、sadd、rpush)也會把該條命令追加到一個單獨的AOF緩沖區的末尾,并將AOF緩沖區寫入AOF文件,然后每隔一秒才會進行一次文件同步把內存緩沖區里的AOF緩存數據真正寫入AOF文件里,這個模式兼顧了效率的同時也保證了數據的完整性,即使在服務器宕機也只會丟失一秒內對redis數據庫做的修改;
3、將appendfsync配置成no則意味redis數據庫里的數據就算丟失你也可以接受,它也會把每條寫命令追加到AOF緩沖區的末尾,然后寫入文件,但什么時候進行文件同步真正把數據寫入AOF文件里則由系統自身決定,即當內存緩沖區的空間被填滿或者是超過了設定的時限后系統自動同步。這種模式下效率是最快的,但對數據來說也是最不安全的,如果redis里的數據都是從后臺數據庫如mysql中取出來的,屬于隨時可以找回或者不重要的數據,那么可以考慮設置成這種模式。