RDB持久化配置
Redis会将数据集的快照dump到dump.rdb文件中。
save 900 1 #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10 #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。
save 60 10000 #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。
- rdb模式是备份数据,redis会复制一个子线程先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储。复制子线程的内容包括(所有数据、环境变量、程序计数器等数值),整个复制操作是在主线程下执行的,所以当数据量大的话,会造成整个redis服务无响应。
- 数据会有几秒的丢失。
- 体积小,恢复快。
AOF持久化配置
在Redis的配置文件中存在三种同步方式,它们分别是:
appendfsync always #每次有数据修改发生时都会写入AOF文件。
appendfsync everysec #每秒钟同步一次,该策略为AOF的缺省策略。
appendfsync no #从不同步。高效但是数据不会被持久化。
- aof模式是记录操作日志。
- 如果日志过大,Redis可以自动启用rewrite机制。体积大,恢复慢。
如果aof或rdb文件语法有误,可以使用上面两条命令来修复。
aof修复命令:redis-check-aof --fix appendonlly.aof
rdb修复命令:redis-check-rdb--fix dump.rdb