https://xmind.ai/share/mAAx385q?xid=pXSJ7cbq
很多时候我们需要持久化数据也就是将内存中的数据写⼊到硬盘⾥⾯,⼤部分原因是为了之后重⽤数据 (⽐如重启机器、机器故障之后恢复数据),或者是为了防⽌系统故障⽽将数据备份到⼀个远程位置。
Redis不同于Memcached的很重⼀点就是,Redis⽀持持久化,⽽且⽀持两种不同的持久化操作。Redis的 ⼀种持久化⽅式叫快照(snapshotting,RDB),另⼀种⽅式是只追加⽂件(append-only file,AOF)。这两种⽅法各有千秋,下⾯我会详细这两种持久化⽅法是什么,怎么⽤,如何选择适合⾃ ⼰的持久化⽅法。
很多时候我们需要持久化数据也就是将内存中的数据写⼊到硬盘⾥⾯,⼤部分原因是为了之后重⽤数据 (⽐如重启机器、机器故障之后恢复数据),或者是为了防⽌系统故障⽽将数据备份到⼀个远程位置。
Redis不同于Memcached的很重⼀点就是,Redis⽀持持久化,⽽且⽀持两种不同的持久化操作。Redis的 ⼀种持久化⽅式叫快照(snapshotting,RDB),另⼀种⽅式是只追加⽂件(append-only file,AOF)。这两种⽅法各有千秋,下⾯我会详细这两种持久化⽅法是什么,怎么⽤,如何选择适合⾃ ⼰的持久化⽅法。
快照(snapshotting)持久化(RDB)
Redis可以通过创建快照来获得存储在内存⾥⾯的数据在某个时间点上的副本。Redis创建快照之后,可以对快照进⾏备份,可以将快照复制到其他服务器从⽽创建具有相同数据的服务器副本(Redis主从结构,主要⽤来提⾼Redis性能),还可以将快照留在原地以便重启服务器的时候使⽤。
快照持久化是Redis默认采⽤的持久化⽅式,在redis.conf配置⽂件中默认有此下配置:
AOF(append-only file)持久化
与快照持久化相⽐,AOF持久化的实时性更好,因此已成为主流的持久化⽅案。默认情况下Redis没有 开启AOF(append only file)⽅式的持久化,可以通过appendonly参数开启:
开启AOF持久化后每执⾏⼀条会更改Redis中的数据的命令,Redis就会将该命令写⼊硬盘中的AOF⽂件。 AOF⽂件的保存位置和RDB⽂件的位置相同,都是通过dir参数设置的,默认的⽂件名是 appendonly.aof。