redis的快照和AOF
1.目的
为了解决持久化的问题,我们先来解释一下什么叫持久化。所谓持久化就是数据可以一直保存在数据库中,比如说mysql在你重启之后数据还是存在在数据库中,而我们的redis在重启之后就会出现数据消失的问题。所以我们有必要在重启之后依然能加载原来的数据,这就是所谓的持久化。
2.解决方案
1)快照
所谓的快照就是把数据都备份在一个文件中,如果重启的话就将数据加载到redis中即可,但是这个方案最大的缺点就是快照因为是备份所有数据,所以不可能每修改一条数据都备份一回,所以是周期性地备份,这样如果出现意外就会造成现在的redis中的数据与备份之前的数据不一样。
2)AOF
解决了数据不一致的问题,解决方法就是把原来的备份数据换成了备份每一条修改数据的指令。这样就能实时同步数据,但是这也给redis带来了不小的压力。还有一个问题就是如果一直写入指令的话会出现文件过大的情况。所以我们定期地重写AOF,重写时会新建一个AOF先把目前的数据对应的指令都写入AOF,然后再同步新的数据。