Redis的持久化机制-RDB方式和AOF方式
场景
Redis的持久化策略
持久化可以理解为存储,就是将数据存储到一个不会丢失的地方。
如果把数据存储在内存中,电脑关闭或者重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘中就算是一种持久化。
Redis的数据存储在内存中,内存是瞬时的,如果linux宕机或者重启,又或者Redis崩溃或者重启,
所有的内存中数据就会丢失,为解决这个问题,Redis提供了两种机制对数据进行持久化存储,便于发生故障后能迅速恢复数据。
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
RDB方式
RedisDatabase(RDB),就是在指定的时间间隔内将内存中的数据集快照写入磁盘,数据恢复时将快照文件直接再读到内存。
RDB保存了在某个时间点的数据集(全部数据)。存储在一个二进制文件中,只有一个文件,默认是dump.rdb。
RDB技术非常适合做备份,可以保存最近一个小时,一天,一个月的全部数据。保存数据是在单独的进程中写文件,
不影响Redis的正常使用,RDB恢复数据时比其他AOF速度快。
RDB方式配置实现
RDB方式的持久化,仅需在redis.conf文件中配置即可,默认配置是启用的。
Centos中Redis的下载编译与安装(超详细):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103967334
Redis的启动和关闭(前台启动和后台启动):
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/103972348
根据上面两篇博客来到Redis安装路径下配置文件redis-conf文件的位置,可以看到dump.rdb文件
然后对redis.conf配置文件进行编辑
然后往下找到SNAPSHOTTING,查找在注释开始和结束之间的关于RDB的配置说明。
1.配置执行RDB生成快照文件的时间策略。
对Redis进行设置,让它在"N秒钟内数据集至少有M个key改动"这一条件被满足时,自动保存一次数据集。
这里的默认配置
save 900 1
save 300 10
save 60 10000
就是说在900秒内有1个key被改动,300秒内有10个key被改动,60秒内有10000个key被改动。
2.dbfilename:设置RDB的文件名,默认文件名dump.rdb
3.dir :指定RDB文件的存储位置,默认是./ 当前目录
RDB方式总结
优点:
由于存储的是数据快照文件,恢复数据很方便,也比较快。
缺点:
1.会丢失最后一次快照以后更改的数据,如果你的应用能容忍一定数据的丢失,那么使用rdb
是不错的选择;如果你不能容忍一定数据的丢失,使用rdb就不是一个很好的选择。
2.由于需要经常操作磁盘,RDB会分出一个子进程。如果你的redis数据库很大的话,子进程占用比较多的时间,并且可能会
影响Redis暂停服务一段时间(毫秒级别),如果你的数据库超级大并且你的服务器的CPU比较弱,有可能会达到一秒。
AOF方式
Append-onlyFile(AOF),Redis每次接收到一条改变数据的命令时,它将把该命令写到一个
AOF文件中(只记录写操作,不记录读记录),当Redis重启时,它通过执行AOF文件中所有的命令来恢复数据。
AOF的数据持久化,仅需在redis.conf中配置即可。
配置项:
1.appendonly:默认是no,改为yes即开启了AOF持久化。
2.appendfilename :指定AOF文件名,默认文件名是appendonly.aof。
3.dir:指定RDB和AOF文件存放的位置。
4.appendfsync:配置向aof文件写命令数据的策略:
no:不主动进行同步操作,而是完全交由操作系统来做(即每30秒一次),比较快但不是很安全。
always:每次执行写入都会执行同步,慢一些但是比较安全。
everysec:没秒执行一次同步操作,比较平衡,介于速度与安全之间,这就是默认项。
Redis的持久化机制-RDB方式和AOF方式相关推荐
- redis rdb aof区别_理解Redis的持久化机制:RDB和AOF
什么是Redis持久化? Redis作为一个键值对内存数据库(NoSQL),数据都存储在内存当中,在处理客户端请求时,所有操作都在内存当中进行,如下所示: 这样做有什么问题呢? 注 意 文末有:362 ...
- redis rdb aof区别_10分钟彻底理解Redis的持久化机制:RDB和AOF
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:张君鸿 juejin.im/post/5d09a9ff51882577eb133aa ...
- Redis数据持久化机制AOF原理分析一---转
http://blog.csdn.net/acceptedxukai/article/details/18136903 http://blog.csdn.net/acceptedxukai/artic ...
- Redis数据持久化机制AOF原理分析二
本文所引用的源码全部来自Redis2.8.2版本. Redis AOF数据持久化机制的实现相关代码是redis.c, redis.h, aof.c, bio.c, rio.c, config.c 在阅 ...
- Redis的持久化机制与内存管理机制
1.概述 Redis的持久化机制有两种:RDB 和 AOF ,这两种机制有什么区别?正式环境应该采用哪种机制? 我们的服务器内存资源是有限的,如果内存被Redis的缓存占满了怎么办?这就要看Redis ...
- 面试官:能说说Redis的持久化机制吗?
我们先来看这么一段面试场景-- 面试官:你们项目缓存技术用到了什么缓存技术? 小帅:Redis 面试官:那么问一下,Redis缓存技术用到的持久化机制是哪一种机制? 小帅:AOF 面试官:好吧,回去等 ...
- Redis面试 - Redis的持久化机制
Redis面试 - Redis的持久化机制 面试题 redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的? 面试官心理分析 redis 如果仅仅只是将数据缓 ...
- 执行一次怎么会写入两次数据_Java进阶知识:一文详解缓存Redis的持久化机制,新手看完也会用
Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制. Redis有两种持久化的方式: ...
- redis的持久化机制详解
redis的持久化机制 因为Redis的数据都储存在内存中,当进程退出时,所有数据都将丢失.为了保证数据安全,Redis支持RDB和AOF两种持久化机制有效避免数据丢失问题.RDB可以看作在某一时刻R ...
最新文章
- nn.AdaptiveAvgPool1d()
- 关于编译错误 fatal error C1083: Cannot open precompiled header file
- 怎么改变表单option标签直接字体大小_不起眼却非常重要的表单交互
- android webserver mysql,Android手机变身Web服务器,BitWebServer简单评测
- Unity2020.1中如何安装DOTS的Entities包?
- 开启IIS的WebGarden、WebFarm和StateServer之旅
- sqlalchemy_外键连接表
- html怎么实现追加表格,jQuery实现html表格动态添加新行的方法
- Python的web小游戏启动心得
- 计算机基础备课计划,《计算机应用基础》教学计划备课讲稿.doc
- 知识付费系统源码(最新开源知识付费系统搭建下载)
- 程序员修炼之道---从小工到专家 第一章
- 怎么修改MAC电脑名字,三步教你修改MAC电脑的名字
- 计算机启动太慢可以设置什么来加速启动速度,电脑开机启动慢怎么办?教你4种设置方法,轻松加快win10开机速度!...
- iOS - 距离传感器
- 网站的PV是什么意思
- java对用户输入的String做校验只允许有数字和大小写字母,不允许全角,只允许半角
- 本科计算机 在职研究生想读英语,想读在职研究生但是英语成绩不好怎么办?...
- python使用keyboard库写的GUI键盘宏
- 全国超能吃辣的省份,连四川和湖南都不是对手
热门文章
- 幽暗统领 树的重心 牛客白月赛44
- php连mssql 中文乱码,PHP连接MSSQL显示中文时为乱码_PHP教程
- Elastic 使用Heartbeat监测服务运行状态
- svc android,在android中,如何使用 Svc WCF服务_android_开发99编程知识库
- 编写函数实现员工信息录入和输出_编写我的第一个Linux 内核模块“hello_module”...
- androidsettitle方法_在Android应用程序中,Toolbar.setTitle方法无效-应用程序名称显示为标题...
- char添加一个字符_C语言动态接收多个字符串
- python 格式化字符串_Python格式化字符串常用操作
- python开始print_当你使用print时,Python是怎么运行的
- 人月神话贯彻执行_上古神话知识梳理,精华帖