redis持久化配置

Jan 8, 2016
1 min read

持久化级别

redis提供如下四中持久化方案:

  1. 完全不持久化,纯内存操作。比如做缓存服务器时。

  2. RDB持久化,配置时间间隔,异步持久化。默认的持久化方案。

  3. AOF持久化,所有操作都是记录到日志文件,保证所有数据都被记录。 在redis重启时,会使用AOF重建数据集。

  4. 结合使用RDB和AOF的持久化方案.重启时会使用AOF重建。

RDB优缺点

优点:

  1. 结构紧凑的文件,相当与系统的实时快照,很适合做数据库备份和灾难恢复。

  2. 性能优秀,服务线程不需要处理i/o.

  3. 大数据集上重启很快。不需要重建

缺点:

  1. 间隔性同步到磁盘,导致有可能会丢失部分数据。

  2. fork有可能堵塞导致暂不可用.

AOF优缺点

优点:

  1. 更加稳定,可以设置为 不同步/每秒同步/完全同步.

  2. redis可以rewrite过大的AOF log.

  3. 保存了所有操作,可以从误操作中回复数据库。

缺点:

  1. 所需的文件通常比RDB更大

  2. 查询性能相对比RDB更差。

  3. 有很稀有的bug存在,RDB没有此类bug.

如何使用

  1. 如果想要更强的数据一致性,则应该组合使用AOF和RDB

  2. 如果可以容忍少量的数据丢失,可以只使用RDB.

  3. 不推荐只是AOF. RDB可以很好的处理备份和灾难恢复.

redis最终会合并两种持久化策略,不过时间比较久

其他

快照

默认情况下RDB数据被存到dump.rdb文件下.

可以手动掉 save/bgsave命令调用.

配置保存策略

# save <seconds> <keys>
save 5 10
save 1 50

RDB数据会先写到临时文件,然后替换掉旧的RDB文件.