redis的持久化

数据的存放方式:

  内存:效率高,但是不安全(数据丢失)

  硬盘:效率低,但数据不会丢失

redis持久化的两种方式:

  RDB:

    redis默认的持久化方式,默认保存的文件名为dump.rdb,以二进制的形式将数据写入到文件中;

    优点:保存数据快,还原数据快,适用于容灾备份;

    缺点:小内存机器不适合使用,RDB机制符合要求就会保存快照;

    执行时机:

      1、服务器正常关闭时 ./bin/redis-cli   shutdown

      2、key满足快照条件的时候

        redis.conf 文件中搜索save

  AOF:

    由于快照方式是一定时间间隔做一次的,所以如果服务器意外宕机的话就会丢失掉最后一次快照以后的修改信息,如果

    要求不能丢失任何数据的话,就必须使用AOF的持久化方式;

    AOF(appen only file):比快照更好的持久化,在使用AOF的时候,redis会将每一个收到的写入命令都保存到持久化文件

              中,当宕机之后重启的时候会执行文件中的写命令来重建整个数据库;

    有三种方式:

      appendonly yes; 启用AOF持久化

      appendfsync always; 总是写入AOF文件,并完成磁盘同步(linux fsync);最慢,但是数据安全性最高;

      appendfsync everysec; 每秒钟写入AOF文件,并完成磁盘同步(linux fsync);

      appendfsync no;  写入AOF文件,不等待磁盘同步(linux fsync);效率最高;

    问题:

      由于每一个写入命令都会进行记录,那么持久化文件就会变得越来越大;比如说循环执行incr num 命令100次,

      那么就会在文件中保存100条命令;

    参考:

      

仅做总结记录,如侵可删

原文地址:https://www.cnblogs.com/qiankun-site/p/12290070.html