前言
Redis 提供了多種不同級別的持久化方式:
1、RDB 持久化可以在指定的時間間隔內生成數據集的時間點快照(point-in-time snapshot)。
2、AOF 持久化記錄伺服器執行的所有寫操作命令,並在伺服器啟動時,通過重新執行這些命令來還原數據集。 AOF 文件中的命令全部以 Redis 協議的格式來保存,新命令會被追加到文件的末尾。 Redis 還可以在後臺對 AOF 文件進行重寫(rewrite),使得 AOF 文件的體積不會超出保存數據集狀態所需的實際大小。
3、Redis 還可以同時使用 AOF 持久化和 RDB 持久化。 在這種情況下, 當 Redis 重啟時, 它會優先使用 AOF 文件來還原數據集, 因為 AOF 文件保存的數據集通常比 RDB 文件所保存的數據集更完整。
4、關閉持久化功能,。讓數據只存在內存裡面,重啟就沒了。
info查看持久化信息
redis-cli info persistence# Persistenceloading:0rdb_changes_since_last_save:0rdb_bgsave_in_progress:0rdb_last_save_time:1535548691rdb_last_bgsave_status:okrdb_last_bgsave_time_sec:0rdb_current_bgsave_time_sec:-1rdb_last_cow_size:327680aof_enabled:1aof_rewrite_in_progress:0aof_rewrite_scheduled:0aof_last_rewrite_time_sec:-1aof_current_rewrite_time_sec:-1aof_last_bgrewrite_status:okaof_last_write_status:okaof_last_cow_size:0aof_current_size:32134086aof_base_size:32100493aof_pending_rewrite:0aof_buffer_length:0aof_rewrite_buffer_length:0aof_pending_bio_fsync:0aof_delayed_fsync:0
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過程中父進程與子進程相比執行了多少修改(包括讀緩衝區,寫緩衝區,數據修改等)。