RDB持久化与AOF持久化简单描述

RDB:RDB使用快照的方式存储数据库中的内容,直接将所有键值对数据全部存入二进制文件。建议使用BGSAVE来进行备份,整个过程会新fork一个子进程来执行,不影响redis其他进程的IO。
AOF:AOF持久化则是记录每次数据写入的操作命令。并且会维护一个AOF缓冲区和一个重写缓冲区,AOF缓冲区中记录写命令并定期保存到已有的持久化文件中。为了避免文件过大,会根据触发条件进行重写AOF文件,并且为了保证子进程重写过程不丢失实时数据,同时会维护一个重写缓冲区。每次写命令都会同时记录在两个缓冲区中。

两者的选择和优劣对比可以参考:https://www.cnblogs.com/ysocean/p/9114268.html

AOF触发机制

1.没有BGSAVE命令(RDB持久化)/AOF持久化在执行;
2.没有BGREWRITEAOF在进行;
3.当前AOF文件大小要大于server.aof_rewrite_min_size(默认为1MB),或者在redis.conf配置了auto-aof-rewrite-min-size大小;
4.当前AOF文件大小和最后一次重写后的大小之间的比率等于或者等于指定的增长百分比(在配置文件设置了auto-aof-rewrite-percentage参数,不设置默认为100%)

设置redis.conf

在redis服务器所在的容器中中配置redis.conf

  1. appendonly。默认是appendonly no。改成appendonly yes。设置AOF模式持久化(记录每次操作,不使用快照,也就是RDB的形式)
  2. appendfsync。设置成everysec(每秒进行一次相对于always性能更好)。
  3. dbfilename。 设置保存的文件名称(可选)
  4. dir。 设置本地数据存储位置(可选,我配置到/redis/data,便于做与宿主机文件夹的映射)

配置完以后重启redis服务

docker 启动配置

最新文章

  1. PC虚拟现实应用的性能分析与优化:从CPU角度切入
  2. 浏览器中Javascript的加载和执行
  3. Python filter,map,lambda,reduce,列表解析
  4. linux进阶
  5. Boostrap学习心得
  6. eclipse+adt+sdk开发环境搭配
  7. NtpClient
  8. [NYIST15]括号匹配(二)(区间dp)
  9. 在AChartEngine上绘图,手指标记当前位置
  10. RAC 常用维护工具和命令(oracle 10g)
  11. ASP.NET 5应用是如何运行的(3)
  12. pip install -r requirements.txt 安装mysqldb失败 解决方案
  13. Intelli IDEA学习系列之快捷键篇
  14. linux学习(九)set_uid、set_gid、stick_bit、软链接、硬链接
  15. Linq 延迟加载
  16. 分析dhcp.lease文件,统计DHCP服务器IP自动分配
  17. asp.net core Serilog的使用
  18. call、apply、bind的用法
  19. 第16月第24天 find iconv sublime utf-8
  20. 使用TVTK库创建一个矩形视图

热门文章

  1. 【九校3D2T3】世界第一的猛汉王
  2. Ajax进阶之原生js与跨域jsonp
  3. php如何控制用户对图片的访问 PHP禁止图片盗链
  4. PAT A1127 ZigZagging on a Tree (30 分)——二叉树,建树,层序遍历
  5. Java 中数组的内存分配
  6. django_redis作为 session backend 使用配置
  7. python 全栈开发,Day41(线程概念,线程的特点,进程和线程的关系,线程和python 理论知识,线程的创建)
  8. docker命名空间、控制组及联合文件系统概念
  9. linux源码分析 - 进程
  10. 5个python爬虫教材,让小白也有爬虫可写,含视频教程!