Redis 提供了兩種持久化方法:RDB(Redis DataBase)和 AOF(Append Only File)。這里將介紹如何使用這兩種方法進行數據備份。
RDB 是 Redis 默認的持久化方式。它會在指定的時間間隔內生成數據集的時間點快照(Snapshot)。這些快照文件可以用于備份、災難恢復等場景。
配置 RDB 持久化:
在 redis.conf 配置文件中,找到或添加以下配置項:
save 900 1
save 300 10
save 60 10000
這些配置項表示在 900 秒內有 1 個鍵值變更、300 秒內有 10 個鍵值變更或 60 秒內有 10000 個鍵值變更時,Redis 會自動生成一個 RDB 文件。
生成 RDB 文件:
在 redis-cli 中,使用以下命令手動觸發 RDB 生成:
SAVE 或 BGSAVE
備份 RDB 文件:
Redis 會將生成的 RDB 文件保存在服務器的默認目錄下(通常是 /var/lib/redis/)。你可以將這個目錄復制到其他服務器,以實現數據備份。
AOF 持久化記錄了 Redis 服務器接收到的所有寫操作命令,并在服務器啟動時重新執行這些命令來恢復數據。AOF 文件可以用于備份和災難恢復等場景。
配置 AOF 持久化:
在 redis.conf 配置文件中,找到或添加以下配置項:
appendonly yes
appendfilename "appendonly.aof"
這些配置項表示開啟 AOF 持久化,并將 AOF 文件命名為 appendonly.aof。
生成 AOF 文件:
在 redis-cli 中,使用以下命令手動觸發 AOF 生成:
BGREWRITEAOF
備份 AOF 文件:
Redis 會將生成的 AOF 文件保存在服務器的默認目錄下(通常是 /var/lib/redis/)。你可以將這個目錄復制到其他服務器,以實現數據備份。
注意:RDB 和 AOF 持久化方法各有優缺點。RDB 生成的快照文件較小,恢復速度較快,但可能丟失最近的更改。AOF 持久化記錄了所有寫操作命令,因此數據更加完整,但生成的文件較大,恢復速度較慢。在實際應用中,可以根據需求選擇合適的持久化方法,甚至可以將兩者結合使用,以達到更好的數據保護效果。