Redis持久化

Redis持久化

持久化

持久化方式:

  1. 快照(snapshotting) 只适用于那些即使丢失一部分数据也不会造成问题的应用程序。
  2. AOF(只追加文件)将执行的写命令AOF文件的末尾。

快照

创建快照的方式:

  1. 客户端发送BGSAVE命令,Redis调用fork来创建一个子进程,然后子进程负责将快照写入硬盘,父进程继续处理请求。
  2. 配置文件设置save配置选项。执行BGSAVE命令。
  3. Redis的SHUTDOWN命令,会执行SAVE命令。

    BGSASVE SAVE SAVE 会阻塞Redis直至快照完成。
    对于大数据:
    当Redis只有几个GB的时候,使用snapshot没有问题,但是随着Redis占用的内存越来越多,BGSAVE在创建子进程耗费的时间会越来越多。导致Redis的性能越来越低直至不可用。
    因此可以以考虑在业务不繁忙的时候手动执行save命令。

    AOF持久化

    AOF文件会因为不断地追加而变得异常庞大,此时需要BGREWRITEAOF来重写AOF文件。可以通过设置auto-aof-rewrite-min-size来自动执行。

    复制

    对于有扩展平台以适应更高负载来说,复制是不可或缺的。
一分不嫌少 一毛不嫌多