持久化方式对比
- RDB
- 优点
RDB文件紧凑,体积小,网络传输快,适合全量复制;恢复速度比AOF快很多。当然,与AOF相比,RDB最重要的优点之一是对性能的影响相对较小。 - 缺点
RDB文件的致命缺点在于其数据快照的持久化方式决定了必然做不到实时
持久化,而在数据越来越重要的今天,数据的大量丢失很多时候是无法接受的,
因此AOF 持久化成为主流。此外,RDB 文件需要满足特定格式,兼容性差(如老
版本的 Redis 不兼容新版本的 RDB 文件)
- AOF
- 优点
与RDB 持久化相对应,AOF 的优点在于支持秒级持久化、兼容性好。 - 缺点
缺点是文件大、恢复速度慢、对性能影响大。
持久化策略选择
- 如果Redis中的数据完全丢弃也没有关系(如Redis完全用作DB层数据的
cache)那么无论是单机,还是主从架构,都可以不进行任何持久化。 - 在单机环境下(对于个人开发者,这种情况可能比较常见)如果可以接受
十几分钟或更多的数据丢失,选择RDB对Redis的性能更加有利;如果只能接受
秒级别的数据丢失,应该选择AOF。 - 但在多数情况下,我们都会配置主从环境,slave 的存在既可以实现数据的热备,也可以进行读写分离分担Redis 读请求,以及在 master 宕掉后继续提供服务。