redis学习4--redis持久化

  持久化有效的避免因进程退出造成的数据丢失问题,当下次重启时利用持久化文件即可实现数据恢复,redis持久化方式有RDB和AOF两种。

1 RDB

  RDB持久化是把当前进程数据生成快照保存到硬盘过程,可以手动触发也可以自动触发。

  save命令:  基本没人用了,会阻塞当前Redis服务器,直到RDB过程完成为止。

  bgsave:     redis执行fork操作子进程,持久化任务由子进程负责,阻塞只发生在fork阶段,时间很短。

  RDB生成的数据文件保存在 配置文件的dir目录下,文件名也可以修改(默认dump.rdb)

  

 

2 AOF

  AOF以独立的日志记录方式记录每次写命令,重启之后再重新执行AOF文件的命令,即可以达到数据恢复的目的,AOF可以解决数据持久化的实时性,是redis主流的持久化方式。 

  开启AOF,并指定AOF文件名(默认是appendonly.aof),文件保存路径和RDB一样 都在dir之下。

  

 

   AOF文件同步策略,由配置文件中的appendfsync参数控制,值有下列三个选项

    always:   每次写入都要同步AOF文件(不建议配置,会阻碍redis性能)

    everysec:  建议的配置(也是默认的配置),理论上最多丢失一秒内数据

    no:       不建议配置,数据得不到安全性保证

   从写机制

    时间长了,命令会越来越多,aof文件也就会越来越大,重写机制就是为了解决这个问题的,文件变小的原因1:如set a 11,set a 22,只保留最终的命令,即set a 22,  2: 合并命令,如:rpush key a, rpush key b,会被合并为 rpush key a b。

  重写触发时机

  

  redis重启后数据文件的选择如下

   

 

posted on 2018-09-06 16:51  Advance_Man  阅读(166)  评论(0编辑  收藏  举报

导航