微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Redis系列七:redis持久化

redis支持RDB和AOF两种持久化机制,持久化可以避免因进程退出而造成数据丢失

一、RDB持久化

RDB持久化把当前进程数据生成快照(.rdb)文件保存到硬盘的过程,有手动触发和自动触发 手动触发有save和bgsave两命令 save命令:阻塞当前Redis,直到RDB持久化过程完成为止,若内存实例比较大会造成长时间阻塞,线上环境不建议用它 bgsave命令:redis进程执行fork操作创建子线程,由子线程完成持久化,阻塞时间很短(微秒级),是save的优化,在执行redis-cli shutdown关闭redis服务时,如果没有开启AOF持久化,自动执行bgsave; 显然bgsave是对save的优化。

bgsave

RDB文件的操作

   命令:config set dir /usr/local  //设置rdb文件保存路径

   备份:bgsave  //将dump.rdb保存到usr/local下

   恢复:将dump.rdb放到redis安装目录与redis.conf同级目录,重启redis即可

   优点:1,压缩后的二进制文文件适用于备份、全量复制,用于灾难恢复

              2,加载RDB恢复数据远快于AOF方式

   缺点:1,无法做到实时持久化,每次都要创建子进程,频繁操作成本过高

              2,保存后的二进制文件,存在老版本不兼容新版本rdb文件的问题

二、AOF持久化

RDBdis解决

redis.confyes  (默认不开启,为

默认文件名:appendfilename "appendonly.aof"   

      

    1

         2

         3文件越来越大,需定期对文件

         4dis文件进行恢复

AOF文件同步文件重写

AOF

appendonly yes     //

# appendfsync always //

appendfsync everysec //性能和持久化方面做了折中,推荐

# appendfsync no    //性能最好

no-appendfsync-on-rewrite  yes  //

auto-aof-rewrite-percentage 100  //aof文件大小比起上次重写时的大小

auto-aof-rewrite-min-size 64mb   //aof文件

如何从AOF恢复?

1.

2.

3. disdis自动加载文件。

redis重启时恢复加载AOF与RDB顺序及流程:

1文件同时存在时,优先加载AOF

2关闭了文件

3dis

4错误,dis错误信息

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐