rdb方式

rdb是redis对数据进行持久化而保存到硬盘的数据文件。

默认情况下相关配置如下:

save 900 1
save 300 10
save 60 10000

其意义为:

  • 当1个key更新值时每900秒保存一次数据到硬盘

  • 当10个key更新值时每300秒保存一次到硬盘

  • 当10000个key更新值时每60秒保存一次到硬盘

换句话说,当你重启服务器时数据是可能会丢失的,如果数据量小的时候,你会丢失5分钟以内的数据;如果数据量大的时候,你会丢失一分钟以内的数据。

所以set name 1后重启服务器,get name时的结果会是nil,如果你想避免这种情况发生,那么可以save后重启服务器。

然而大多数情况下我们需要防止的是服务器突发情况下的重启,这时候可能没有机会save,所以还是会造成数据的丢失。所以你可以设置save "",这样的话会每次写操作到保存到硬盘,但是redis作为缓存却需要每次到保存到硬盘已丧失了其作为缓存的意义。因此这种方法是不可取的。

还有一种方式,在每次写操作时使用bgsave命令,可以直接返回操作结果并异步将其保存到硬盘。

rdb方式的优点是保存的数据存储量小(只有数据),重启速度很快;缺点是可能会造成数据的丢失。

aof方式

aof本质是redis操作(写操作)日志文件。aof默认是未开启的,需要在配置文件中进行设置,在配置文件中将这一行改为appendonly yes就可以了。

那么会在什么时候append到文件末尾呢?有三种方式:

appendfsync always
appendfsync everysec
appendfsync no 
  • appendfsync always每次有新命令追加到 AOF 文件时就执行一次 fsync :非常慢,也非常安全

  • appendfsync everysec每秒 fsync 一次:足够快(和使用 RDB 持久化差不多),并且在故障时只会丢失 1 秒钟的数据。

  • appendfsync no从不 fsync :将数据交给操作系统来处理。更快,也更不安全的选择。

推荐(并且也是默认)的措施为每秒 fsync 一次, 这种 fsync 策略可以兼顾速度和安全性。

aof能够保证数据的安全,但是在重启时比较耗时,而且aof文件的体积比rdb文件大。

使用

在同时开启rdb和aof模式时,会采用aof模式来读取数据。在正常的使用中,如果不是十分在乎短时间内的数据丢失的时候,使用rdb方式会使服务器的效率更高,更节省cpu和硬盘;如果担心数据丢失的话,aof方式无疑会是更好的选择。

Redis 的持久化相关推荐

  1. Redis RDB 持久化详解

    来自公众号:程序员历小冰 Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多.但是一旦进程退出,Redis 的数据就会丢失. 为了解决这个问题,Re ...

  2. Redis AOF 持久化详解

    来自公众号:程序员历小冰 Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多.但是一旦进程退出,Redis 的数据就会丢失. 为了解决这个问题,Re ...

  3. 彻底理解 Redis 的持久化和主从复制

    作者 | 张君鸿 来源 | https://juejin.cn/post/6844903874927525902 在这篇文章,我们继续有关Redis方面知识的学习,一起了解一下其中一个非常重要的内容: ...

  4. Redis的持久化开启了RDB和AOF下重启服务是如何加载的?(10个人9个回答错误)

    互联网面试题更新了!随便呈上几道,看看大家能否答出来: redis为什么是key,value的,为什么不是支持SQL的? redis是多线程还是单线程?(回答单线程的请回吧,为什么请回,请往下看) r ...

  5. 深入理解Redis的持久化机制和原理

    Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 近日,Redis ...

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

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

  7. redis php 持久化,详解Redis RDB持久化、AOF持久化,

    详解Redis RDB持久化.AOF持久化, 1.持久化 1.1 持久化简介 持久化(Persistence),持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永 ...

  8. Redis专题-持久化方式

    很多时候我们为了缓解数据库的压力,都会使用缓存来作为数据的存储方式,最常用的就是使用redis.将热点数据缓存在redis中可以有效缓解数据库的压力.但是如果redis挂了那些重要的数据怎么办?red ...

  9. Redis的持久化机制-RDB方式和AOF方式

    场景 Redis的持久化策略 持久化可以理解为存储,就是将数据存储到一个不会丢失的地方. 如果把数据存储在内存中,电脑关闭或者重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘中就算是一种 ...

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

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

最新文章

  1. Socket通信之操作系统的字节序和位数
  2. 电压控制型开关电源的基本电路
  3. html5基础知识点表单
  4. CURL HTTPS POST
  5. C# 生成私钥和公钥
  6. Kotlin Weekly 中文周报
  7. Hibernate 基础配置及常用功能(二)
  8. gjr garch Matlab,基于Copula-ARIMA-GJR-GARCH模型的股票指数相关性分析
  9. 京东 | NLP人才联合培养计划
  10. C++ STL 中提供的算法
  11. 浪潮云海OpenStack X版本技术贡献中国第一
  12. go.js节点字体设置
  13. python怎样画动态文字_Python制作动态字符图的实例
  14. Shell基本应用(学习笔记)
  15. Android开发布局 案例一
  16. 规则库捕获漏洞信息专用脚本
  17. android webview 加载过程,实战:七步完成Android Webview图片加载
  18. FPGA series # 基于SDx的fft函数加速
  19. 【windows】中下载并安装Python(简单明了)
  20. 如何修改本地hosts文件

热门文章

  1. matlab 模糊pid mimo 对应,双关节机械手的模糊PID控制系统设计.doc
  2. python画相关性可视化图_Python可视化matplotlibseborn16-相关性热图
  3. 数据结构c语言版第二版第三章课后答案,数据结构(C语言版)习题集答案第三章.doc...
  4. 中文论文万能句型_干货|SCI论文写作的万能句型~
  5. signature=3e4864de0d5dd0316b95f8329f488c7d,一种农机车桥轮毂油封
  6. nuxt页面跳转_还不会Nuxt.js的速进!
  7. layui select 修改_layui怎么修改select的值?
  8. mysql随机查询多条记录表_MySQL 随机查询表中N条记录
  9. Flink AggOperator 增量聚合函数
  10. VSCode Editing Code