Redis 持久化 RDB -> AOF

背景

当前 redis 持久化模式为 RDB,具体配置html

save 900 1  # 900 秒有 1 次更新则快照
save 300 10 # 300 秒有 10 次更新则快照
save 60 10000 # 60 秒有 10000 次更新则快照

stop-writes-on-bgsave-error yes
rdbcompression yes
rdbchecksum yes
dbfilename dump.rdb
dir /data
复制代码

那么经过 docker 运行 redis 可将数据持久化到本地特定目录,即redis

docker run -d --name=redis -p 6379:6379 -v $(pwd):/data redis:3.2.3
复制代码

经过 save 规则能够知道,并非每次操做都会持久化,即重启可能丢数据。 为了不丢数据致使异常,因而想变动持久化模式为 AOF。docker

操做

调整 redis 配置文件,aof 相关配置以下数据库

appendonly yes

appendfilename "appendonly.aof"
appendfsync everysec # 每秒备份
no-appendfsync-on-rewrite no
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb
aof-load-truncated yes
复制代码

重启 redis ,发现原来的 rdb 数据并无加载,可见变动为 aof 以后,redis 启动之时不会加载 rdb 的数据,因而还原配置,恢复 redis 数据。bash

参考 redis 文档 怎么从 RDB 持久化切换到 AOF 持久化, 发现能够在运行时直接切换 redis 持久化模式,执行命令以下app

redis-cli> CONFIG SET appendonly yes
redis-cli> CONFIG SET save ""
复制代码

发现 /data 目录下自动生成了appendonly.aof 文件,经过 dbsize 命令来进行验证数据库的键的数量没有改变。至此,说明 redis 的持久化模式已经进行了变动。ui

为了不重启以后配置失效,从新调整 redis.conf 配置文件,添加 AOF 相关配置,因而重启 redis 验证,发现数据正常,至此,切换结束。spa

相关文章
相关标签/搜索