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持久化RDB redis.confyes ?( appendfilename "appendonly.aof" ?? ?????? ?1 ?????????2 ?????????3 ?????????4 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. redis重启时恢复加载AOF与RDB顺序及流程:1 2 3 4 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |