Redis 提供了两种主要的持久化方式:RDB(Redis DataBase)和 AOF(Append Only File)。以下是关于如何配置这两种持久化的详细说明:
RDB 是 Redis 默认的持久化方式。它会在指定的时间间隔内生成数据集的时间点快照(snapshot)。
编辑 Redis 配置文件:
打开 redis.conf
文件,找到或添加以下配置项:
# 设置 RDB 快照保存的条件
save 900 1
save 300 10
save 60 10000
# 如果设置为 yes,则在关闭 Redis 时强制执行 RDB 快照
shutdown-save yes
# RDB 文件的存储路径和文件名
dbfilename dump.rdb
dir /var/lib/redis
解释:
save 900 1
:如果在 900 秒内至少有 1 个键发生变化,则保存 RDB 文件。save 300 10
:如果在 300 秒内至少有 10 个键发生变化,则保存 RDB 文件。save 60 10000
:如果在 60 秒内至少有 10000 个键发生变化,则保存 RDB 文件。shutdown-save yes
:在关闭 Redis 时强制执行 RDB 快照。dbfilename dump.rdb
:RDB 文件的名称。dir /var/lib/redis
:RDB 文件的存储目录。重启 Redis 服务: 保存配置文件并重启 Redis 服务以使配置生效。
sudo systemctl restart redis
AOF 持久化会记录服务器接收到的所有写操作命令,并在服务器启动时,通过重新执行这些命令来重建数据集。
编辑 Redis 配置文件:
打开 redis.conf
文件,找到或添加以下配置项:
# 启用 AOF 持久化
appendonly yes
# AOF 文件的存储路径和文件名
appendfilename "appendonly.aof"
# AOF 文件重写策略
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# AOF 文件同步策略
appendfsync everysec
解释:
appendonly yes
:启用 AOF 持久化。appendfilename "appendonly.aof"
:AOF 文件的名称。auto-aof-rewrite-percentage 100
:当 AOF 文件大小比上次重写时的文件大小增加 100% 时,触发重写。auto-aof-rewrite-min-size 64mb
:AOF 文件的最小大小,只有当文件大小超过这个值时才会触发重写。appendfsync everysec
:每秒同步一次 AOF 文件,平衡性能和数据安全性。重启 Redis 服务: 保存配置文件并重启 Redis 服务以使配置生效。
sudo systemctl restart redis
为了提高数据的安全性和恢复速度,可以同时启用 RDB 和 AOF 持久化。在这种情况下,Redis 会优先使用 AOF 文件进行数据恢复,因为 AOF 文件记录了更多的写操作命令。
编辑 Redis 配置文件:
打开 redis.conf
文件,找到或添加以下配置项:
# 启用 AOF 持久化
appendonly yes
# 启用 RDB 持久化
save 900 1
save 300 10
save 60 10000
# 如果设置为 yes,则在关闭 Redis 时强制执行 RDB 快照
shutdown-save yes
# AOF 文件的存储路径和文件名
appendfilename "appendonly.aof"
# AOF 文件重写策略
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
# AOF 文件同步策略
appendfsync everysec
重启 Redis 服务: 保存配置文件并重启 Redis 服务以使配置生效。
sudo systemctl restart redis
通过以上配置,你可以根据实际需求选择合适的持久化方式,或者同时使用 RDB 和 AOF 来提高数据的安全性和恢复速度。