Redis windows学习(二)——Redis持久化的AOF模式和RDB模式
AOF和RDB是什么
Redis进行操作时,有两种方式将操作的结果保存下来。一种是将结果以快照的方式保存在二进制文件中(默认叫:dump.rdb* ),这就是RDB模式,另一种是将操作的命令追加到一个记录文件里(默认叫:appendonly.aof),然后通过重新执行这些命令来重建数据库。通常,不用修改这些,按默认的来就好了,但是,了解一下还是有好处的,说不定面试就问这个呢?
RDB模式
在redis里,默认使用RDB模式。因为RDB模式重建数据库比较快。
这里的 重建数据库 是指将数据从硬盘移到内存,并建立起数据库的过程。对于RDB模式来说,就是把 dump.rdb 文件加载到内存,并解压字符串,就建立起了数据库。而对于AOF模式来说,则是在启动Redis服务器的时候,运行appendonly.aof日志文件,在内存中重新建立数据库。从这里的描述就可以看出,AOF的重建过程是要比RDB慢的。
使用RDB模式的话,系统会将内存中数据库的快照每隔一段时间间隔更新到硬盘中(dump.rdb 文件里),这个更新的频率是可以指定的。在redis.conf中有三个配置用来指定内存数据更新到硬盘的频率:
//格式是:save <seconds> <changes>
save 900 1 //如果仅有1-9次更改操作,那么要900s才写入硬盘一次
save 300 10 //如果仅有10-9999次更改操作,那么要300s才写入硬盘一次
save 60 10000 //如果超过10000次更改操作,那么60s才会写入硬盘一次
900s,也就是15分钟,300s,就是5分钟。这个时间挺长的,这正是RDB模式的缺点所在——如果服务器宕机的话,可能会造成最后几分钟,保存在内存中还来不及刷入硬盘的数据丢失。如果数据很重要那就惨了。
但是,如果数据不是那么重要,丢失几分钟数据也没什么关系,那么RDB模式是最好的选择。
AOF模式
使用AOF模式是将操作日志记在appendonly.aof 文件里,每次启动服务器就会运行appendonly.aof 里的命令重新建立数据库。因为要重新运行命令,所以appendonly.aof 是比较慢的。所以,默认AOF模式是关闭的。你可以在redis.conf 文件里配置,使用appendonly yes
打开AOF模式。
AOF模式有三种追加到appendonly.aof 的方式,用来指定什么时机可以将操作日志追加到appendonly.aof 文件里。它们分别是:
方式 | 说明 |
---|---|
always | 每次执行写操作时都将操作记录追加到日志,安全,但比较慢 |
everysec | 每秒钟将操作记录追加到日志,系统默认的方式,是一种权衡折衷,通常这种方式会比较好 |
no | 让操作系统去决定什么时候追加,也许当操作系统有空的时候,速度快 |
相较于RDB,AOF模式是比较安全的,即使服务器宕机,丢失的数据也最多是一秒两秒的。所以,如果数据对安全性要求很高,那么用AOF吧。
另外,你可以同时指定这两种方式,运行的时候,它们各自按自己的方式办事,不冲突。但是启动的时候,是按AOF模式启动的,也就是运行appendonly.aof 文件。
这些东西,都是从redis.conf搬出来的,推荐去看一下,文件也不长,一共才490行,可以体会一下原汁原味的知识。
AOF模式和RDB模式对比
RDB使用快照的方式进行持久化,这种方式生成的文件结构比较紧密,比较节省空间,而且恢复恢复的时候比AOF文件快。但是因为要做快照,这种方式对redis服务影响较大,所以生成RDB的频率不会太快,一般几分钟才做一次,所以服务器宕机的话,可能会丢失几分钟的信息。
AOF使用日志的方式进行持久化,这种方式生成的文件较大,恢复的时候也较慢,但是对redis服务影响较小,所以刷新AOF文件的频率可以较快,一般都是秒级别的,若服务器宕机,丢失的数据也少。
Redis windows学习(二)——Redis持久化的AOF模式和RDB模式相关推荐
- Redis基础学习(四)—Redis的持久化
一.概述 Redis的强大性能很大程度上都是因为数据时存在内存中的,然而当Redis重启时,所有存储在内存中的数据将会丢失,所以我们要将内存中的数据持久化. Redis支持两种数据持久化的方式: RD ...
- Redis windows学习(一)——redis安装和基础使用
前言 最近做项目时,打算用Redis做缓存服务器,于是研究了一下Redis.由于项目是在windows下,也不打算开个虚拟机,所以就直接安装在windows下.虽然,Redis官网并不提供window ...
- 笔记-redis深入学习-1
笔记-redis深入学习-1 redis的基本使用已经会了,但存储和读取只是数据库系统最基础的功能: 数据库系统还得为可靠实现这两者提供一系列保证: 数据.操作备份和恢复,主要是持久化: 高可用:主要 ...
- Windows系统安装部署redis服务器
目录 0. 前言 1. 下载并安装 2. 第一次试运行 3. 如何确认redis-server可用了? 3.1 运行redis-cli 3.2 用python脚本 4. Windows自启动服务 5. ...
- 【大厂面试】面试官看了赞不绝口的Redis笔记(二)
文章目录 说明 四.Redis的其他功能 (一)慢查询 (二)pipeline (三)发布订阅 (四)Bitmap (五)HyperLogLog (六)GEO 五.Redis持久化的取舍和选择 (一) ...
- Windows 中的 redis安装、设置密码,做成服务
Redis安装与配置 下载 解压 windows服务 配置redis环境 设置redis密码(临时和永久两种方式) 配置redis能被远程连接 一.下载 在GitHub上下载redis压缩包(版本号为 ...
- Windows系统安装使用Redis教程
Windows系统安装使用Redis教程 一.前言 二.Redis下载 三.直接启动使用 四.设置密码并启动 一.前言 之前一直使用的是Linux系统中配置Redis环境,现在需要在Windows ...
- Windows 下安装 Redis
下载地址:https://github.com/tporadowski/redis/releases Redis 支持 32 位和 64 位.这个需要根据实际情况选择,这里我们下载 Redis-x64 ...
- Redis3.2.100安装(Windows环境下Redis安装)
针对不同的用户,Redis有Windows和Linux两种环境安装, 官网上下的是Statble版是Linux,大家一定要注意.由于本人做本地端,所以以下谈的是Windows安装. 本文Redis下载 ...
最新文章
- python 获取10位和13位 时间戳
- java识别文件类型_在Java中识别文件类型
- 记一次LAMP环境搭建
- JAVA——Scanner类绑定System.in后调用close()方法所引发的错误及其解决方案
- HTML基础(part7)--常用标签之超链接标签
- 前端学习(2706):重读vue电商网站26之JSON格式的配置文件
- U盘插入电脑后,提示需要格式化U盘如何解决?
- 整洁数据 —tidytext(一)
- 从软件测试转行做前端,转行软件测试或者前端开发有前途么?
- 计算机信息网络国际联网安全保护管理办法
- 截图智能识字demo
- json转Java_在线JSON转Java实体类—在线工具
- MSXML应用总结 开发篇(上)
- 【观察】嵌入式AI崛起,这里有一本通关“秘籍”
- 1到100号的灯开关问题
- Lerna 多 package 源代码管理方案
- openwrt时间自动同步
- 浅谈带宽,网速和流量之间的关系
- SQL基本语句——查询
- 全面屏的 iPhone X,雷军妥协的库克做到了
热门文章
- 2019年7月前CSDN最新排名
- 分布式队列编程:模型、实战
- spring security 认证与权限控制
- 实验9 根据材料编程
- 高一计算机专业班主任工作总结,2016学年上学期高一班主任工作总结
- springboot创建子模块时遇到子模块覆盖父模块问题解决
- linux 执行sh 文件是遇到找不到cd '目录'
- Plugin org.apache.maven.plugins:maven-resources-plugin:2.6
- 1. 在虚拟机中 添加内容
- 如何使用易我数据恢复向导恢复数码相机删除的图片