场景

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方式相关推荐

  1. redis rdb aof区别_理解Redis的持久化机制:RDB和AOF

    什么是Redis持久化? Redis作为一个键值对内存数据库(NoSQL),数据都存储在内存当中,在处理客户端请求时,所有操作都在内存当中进行,如下所示: 这样做有什么问题呢? 注 意 文末有:362 ...

  2. redis rdb aof区别_10分钟彻底理解Redis的持久化机制:RDB和AOF

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:张君鸿 juejin.im/post/5d09a9ff51882577eb133aa ...

  3. Redis数据持久化机制AOF原理分析一---转

    http://blog.csdn.net/acceptedxukai/article/details/18136903 http://blog.csdn.net/acceptedxukai/artic ...

  4. Redis数据持久化机制AOF原理分析二

    本文所引用的源码全部来自Redis2.8.2版本. Redis AOF数据持久化机制的实现相关代码是redis.c, redis.h, aof.c, bio.c, rio.c, config.c 在阅 ...

  5. Redis的持久化机制与内存管理机制

    1.概述 Redis的持久化机制有两种:RDB 和 AOF ,这两种机制有什么区别?正式环境应该采用哪种机制? 我们的服务器内存资源是有限的,如果内存被Redis的缓存占满了怎么办?这就要看Redis ...

  6. 面试官:能说说Redis的持久化机制吗?

    我们先来看这么一段面试场景-- 面试官:你们项目缓存技术用到了什么缓存技术? 小帅:Redis 面试官:那么问一下,Redis缓存技术用到的持久化机制是哪一种机制? 小帅:AOF 面试官:好吧,回去等 ...

  7. Redis面试 - Redis的持久化机制

    Redis面试 - Redis的持久化机制 面试题 redis 的持久化有哪几种方式?不同的持久化机制都有什么优缺点?持久化机制具体底层是如何实现的? 面试官心理分析 redis 如果仅仅只是将数据缓 ...

  8. 执行一次怎么会写入两次数据_Java进阶知识:一文详解缓存Redis的持久化机制,新手看完也会用

    Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制. Redis有两种持久化的方式: ...

  9. redis的持久化机制详解

    redis的持久化机制 因为Redis的数据都储存在内存中,当进程退出时,所有数据都将丢失.为了保证数据安全,Redis支持RDB和AOF两种持久化机制有效避免数据丢失问题.RDB可以看作在某一时刻R ...

最新文章

  1. nn.AdaptiveAvgPool1d()
  2. 关于编译错误 fatal error C1083: Cannot open precompiled header file
  3. 怎么改变表单option标签直接字体大小_不起眼却非常重要的表单交互
  4. android webserver mysql,Android手机变身Web服务器,BitWebServer简单评测
  5. Unity2020.1中如何安装DOTS的Entities包?
  6. 开启IIS的WebGarden、WebFarm和StateServer之旅
  7. sqlalchemy_外键连接表
  8. html怎么实现追加表格,jQuery实现html表格动态添加新行的方法
  9. Python的web小游戏启动心得
  10. 计算机基础备课计划,《计算机应用基础》教学计划备课讲稿.doc
  11. 知识付费系统源码(最新开源知识付费系统搭建下载)
  12. 程序员修炼之道---从小工到专家 第一章
  13. 怎么修改MAC电脑名字,三步教你修改MAC电脑的名字
  14. 计算机启动太慢可以设置什么来加速启动速度,电脑开机启动慢怎么办?教你4种设置方法,轻松加快win10开机速度!...
  15. iOS - 距离传感器
  16. 网站的PV是什么意思
  17. java对用户输入的String做校验只允许有数字和大小写字母,不允许全角,只允许半角
  18. 本科计算机 在职研究生想读英语,想读在职研究生但是英语成绩不好怎么办?...
  19. python使用keyboard库写的GUI键盘宏
  20. 全国超能吃辣的省份,连四川和湖南都不是对手

热门文章

  1. 幽暗统领 树的重心 牛客白月赛44
  2. php连mssql 中文乱码,PHP连接MSSQL显示中文时为乱码_PHP教程
  3. Elastic 使用Heartbeat监测服务运行状态
  4. svc android,在android中,如何使用 Svc WCF服务_android_开发99编程知识库
  5. 编写函数实现员工信息录入和输出_编写我的第一个Linux 内核模块“hello_module”...
  6. androidsettitle方法_在Android应用程序中,Toolbar.setTitle方法无效-应用程序名称显示为标题...
  7. char添加一个字符_C语言动态接收多个字符串
  8. python 格式化字符串_Python格式化字符串常用操作
  9. python开始print_当你使用print时,Python是怎么运行的
  10. 人月神话贯彻执行_上古神话知识梳理,精华帖