redis 持久化

1、Redis的强大功能很大程度上是由于将其所有的数据存储在内存中,为了使Redis在重启后仍能保证数据不丢失,需要将数据从内存中以某种形式持久化到硬盘中。

2、概念:持久化,就是将数据保存到磁盘,机器宕机或者重启数据不丢失,如果存储到内存中的数据,会丢失。

3、持久化方式

    RDB方式  、 AOF方式

4、RDB

    RDB方式是通过快照完成的,当符合一定条件时Redis会自动将内存中的所有数据进行快照并且存储到硬盘上。进行快照的条件在配置文件中指定有2个参数构成:时间和改动键的个数,当

在指定时间内被更改的键的个数大于指定数值时就会进行快照

   RDB是Redis默认的持久化方式

  配置

  

  15分钟内至少有一个键被更改则进行快照

  5分钟内至少有10个键被更改则进行快照

  1分钟内至少有10000个键被更改则进行快照

  rdb文件

    默认的rdb文件路劲是在当前目录,文件名:dump.rdb,可以在配置文件中修改路劲和文件名,分别是dir和dbfilename

    

  rdb数据恢复过程

    redis启动后会读取rdb快照文件,将数据从硬盘载入到内存中,一般情况下1GB的快照文件载入到内存的时间需要20-30分钟(根据服务器的性能不同)

  快照过程

    1、redis使用fork函数复制一份当前的进程(父进程)的副本(子进程);

    2、父进程继续接收并处理客户端发来的命令,而子进程开始将内存中的数据写入到硬盘的临时文件

    3、当子进程写入完所有的数据后就会用临时文件替换旧的rdb文件

  手动快照

    可以通过SAVE和BGSAVE命令来手动快照,两个命令的区别是前者由主进程进行快照,会阻塞其它的请求,后者是通过fork子进程进行快照

 rdb文件压缩

      可以配置rdbcompression来进行压缩

    压缩和不压缩的优缺点:

         压缩:
        优点:减少磁盘存储空间
        缺点:消耗CPU资源
      不压缩:
        优点:不消耗CPU资源
            缺点:占用磁盘空间多

      Redis默认是开启压缩的,配置:

      

5、AOF

  redis的AOF持久化策略是将发送到reddis服务端的每一条命令都记录下来并且保存到硬盘中的AOF文件中,AOF文件

的位置和RDB文件的位置相同都是通过dir参数设置默认的文件名是appendonly.aof,可以通过appendfilename参数修改

 

posted @ 2016-10-19 14:40  JoinGu  阅读(165)  评论(0编辑  收藏  举报