Redis
持久化存储包括两种方式:AOF
和RDB
。AOF
的全称是Append of file
,RDB
则是Redis Database
。
RDB
是Redis
某一时刻的快照,Redis
会单独fork
一个线程来处理。相比较AOF
的方式,RDB
生成的文件体积会更小。因为AOF
纪录的是操作日志,类似于MySQL
的binlog
。正因为AOF
是操作日志,Redis
为了避免它膨胀的厉害,会进行定期压缩。压缩的实质就是:将对一个Key
的多条操作日志,压缩成一条。
在刷新内存或者同步数据的时候,我们都会采用一些策略。下面试着列举一下:
- 间隔固定的时间进行同步,比如每间隔3s执行一次同步操作;
- 根据数据的变更情况来执行同步。比如,当内存中达到30条记录的时候,执行一次同步操作,或者,距离最近一次同步时间超过阀值的时候,强制同步一次。
Redis
也有自己的同步策略,但万变不离其宗。当然,RDB
的策略没啥可以说的,它可以理解为一个数据备份。因为AOF
有这样的策略存在,在执行这些策略的过程中,线程可能会被阻塞,合理的评估也异常重要。
这两个策略本质上是互补的,并没有优略之分。
来源:oschina
链接:https://my.oschina.net/u/3017278/blog/3223439