前言
如果有人问你:“你会把 Redis 用在什么业务场景下?”
我想你大概率会说:“我会把它当作缓存使用,因为它把后端数据库中的数据存储在内存中,然后直接从内存中读取数据,响应速度会非常快。”
没错,这确实是 Redis 的一个普遍使用场景,但是,这里也有一个绝对不能忽略的问题:「一旦服务器宕机,内存中的数据将全部丢失」 。
目前,Redis 的持久化主要有两大机制,即 「AOF(Append Only File)日志和 RDB(Redis DataBase) 快照」 。
AOF
日志是如何实现的
说到日志,我们比较熟悉的是数据库的写前日志(Write Ahead Log, WAL),在实际写数据前,先把修改的数据记到日志文件中,以便故障时进行恢复。不过,AOF 日志正好相反,它是写后日志,"写后"的意思是 Redis 是先执行命令,把数据写入内存,然后才记录日志。