Redis数据持久化机制、主从同步原理、常见规范与优化详解
Tags: Redis主从同步原理常见规范与优化数据持久化机制
一. 数据持久化
1. 含义
Redis 提供了 RDB 和 AOF 两种持久化方式,默认开启的是RDB,如果需要AOF,需要手动修改配置文件进行开启。
RDB:是一种对Redis存在内存中的数据周期性的持久化机制,将内存中的数据以快照的形式硬盘,实质上是fork了一个子进程在执行数据存储,采用的是二进制压缩的存储模式。
如图:
AOF:是以文本日志的形式记录Redis的每一个写入、删除请求(查询请求不处理),它是以追加的方式(append-only)写入,没有磁盘寻址的开销,所以写入速度非常快(类似mysql的binlog)。
如图:
2. 优缺点对比
(1). RDB优点
生成多个数据文件,每个文件代表某一时刻redis的数据,而且RDB是fork一个子进程做持久化,所以RDB对Redis性能影响非常小,而且他在数据恢复的时候也比AOF快。
(2). RDB缺点
A. RDB通常是每隔一段时间查看key变化数量从而决定是否持久化一次数据,比如5min分钟1次吧,如果这期间宕机或断电,丢失的就是这5min的数据了,而AOF最多丢失一秒。
B. RDB如果生成的快照文件非常大,客户端会卡顿 几毫秒或者几秒,恰逢当时是高并发期间,绝壁出问题!
(3). AOF优点