当前 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