- 手动触发
bgsave命令:redis进程执行fork操作创建子线程,由子线程完成持久化,阻塞时间很短(微秒级),是save的优化,在执行redis-cli shutdown关闭redis服务时,如果没有开启AOF持久化,自动执行bgsave
- 自动触发
2.bgSave 运行流程
运行流程示意图如下:
文章插图
3.RDB文件的操作
- 设置RDB的文件保存路径
- 开始持久化数据
- 恢复数据
优点:
1.压缩后的二进制文,适用于备份、全量复制,用于灾难恢复
2.载RDB恢复数据远快于AOF方式
缺点:
1.无法做到实时持久化,每次都要创建子进程,频繁操作成本过高
2.保存后的二进制文件,存在老版本不兼容新版本rdb文件的问题.
4.AOF持久化
针对RDB不适合实时持久化,redis提供了AOF持久化方式来解决
- 开始持久化
默认文件名:appendfilename "appendonly.aof"
- AOF持久化流程
2.AOF缓冲区向硬盘做sync同步
3.随着AOF文件越来越大,需定期对AOF文件rewrite重写,达到压缩
4.当redis服务重启,可load加载AOF文件进行恢复
文章插图
命令写入(append), 文件同步(sync), 文件重写(rewrite), 重启加载(load)
- AOF配置参数详解
- AOF恢复
2.将appendonly.aof放到dir参数指定的目录
3.启动Redis,Redis会自动加载appendonly.aof文件
- AOF与RDB的加载顺序
2.若关闭了AOF,加载RDB文件
3.加载AOF/RDB成功,redis重启成功
4.AOF/RDB存在错误,启动失败打印错误信息
文章插图
推荐阅读
- Java技术分享:一致性更强的分布式数据库中间件
- Redis数据结构和通用命令
- 微信占了手机很大内存,除了删除数据,还有哪些办法释放内存吗?
- NoSQL 非关系数据库是怎么解决关系数据库(SQL)的问题的?
- MySQL数据库的SQL预处理技术,优化数据库必备
- centos 7怎么修改mariadb数据库的最大连接数
- redis有哪些功能
- 华为手机怎样正确清理内存垃圾?
- 微信也可以存放照片和视频,不占手机内存,老人一学就会
- 原来iPhone手机这样清理内存,能多出几个G,让手机流畅好几倍