Redis 的持久化
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 的持久化相关推荐
- Redis RDB 持久化详解
来自公众号:程序员历小冰 Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多.但是一旦进程退出,Redis 的数据就会丢失. 为了解决这个问题,Re ...
- Redis AOF 持久化详解
来自公众号:程序员历小冰 Redis 是一种内存数据库,将数据保存在内存中,读写效率要比传统的将数据保存在磁盘上的数据库要快很多.但是一旦进程退出,Redis 的数据就会丢失. 为了解决这个问题,Re ...
- 彻底理解 Redis 的持久化和主从复制
作者 | 张君鸿 来源 | https://juejin.cn/post/6844903874927525902 在这篇文章,我们继续有关Redis方面知识的学习,一起了解一下其中一个非常重要的内容: ...
- Redis的持久化开启了RDB和AOF下重启服务是如何加载的?(10个人9个回答错误)
互联网面试题更新了!随便呈上几道,看看大家能否答出来: redis为什么是key,value的,为什么不是支持SQL的? redis是多线程还是单线程?(回答单线程的请回吧,为什么请回,请往下看) r ...
- 深入理解Redis的持久化机制和原理
Redis是一种面向"key-value"类型数据的分布式NoSQL数据库系统,具有高性能.持久存储.适应高并发应用场景等优势.它虽然起步较晚,但发展却十分迅速. 近日,Redis ...
- Redis数据持久化机制AOF原理分析一---转
http://blog.csdn.net/acceptedxukai/article/details/18136903 http://blog.csdn.net/acceptedxukai/artic ...
- redis php 持久化,详解Redis RDB持久化、AOF持久化,
详解Redis RDB持久化.AOF持久化, 1.持久化 1.1 持久化简介 持久化(Persistence),持久化是将程序数据在持久状态和瞬时状态间转换的机制,即把数据(如内存中的对象)保存到可永 ...
- Redis专题-持久化方式
很多时候我们为了缓解数据库的压力,都会使用缓存来作为数据的存储方式,最常用的就是使用redis.将热点数据缓存在redis中可以有效缓解数据库的压力.但是如果redis挂了那些重要的数据怎么办?red ...
- Redis的持久化机制-RDB方式和AOF方式
场景 Redis的持久化策略 持久化可以理解为存储,就是将数据存储到一个不会丢失的地方. 如果把数据存储在内存中,电脑关闭或者重启数据就会丢失,所以放在内存中的数据不是持久化的,而放在磁盘中就算是一种 ...
- Redis的持久化机制与内存管理机制
1.概述 Redis的持久化机制有两种:RDB 和 AOF ,这两种机制有什么区别?正式环境应该采用哪种机制? 我们的服务器内存资源是有限的,如果内存被Redis的缓存占满了怎么办?这就要看Redis ...
最新文章
- Socket通信之操作系统的字节序和位数
- 电压控制型开关电源的基本电路
- html5基础知识点表单
- CURL HTTPS POST
- C# 生成私钥和公钥
- Kotlin Weekly 中文周报
- Hibernate 基础配置及常用功能(二)
- gjr garch Matlab,基于Copula-ARIMA-GJR-GARCH模型的股票指数相关性分析
- 京东 | NLP人才联合培养计划
- C++ STL 中提供的算法
- 浪潮云海OpenStack X版本技术贡献中国第一
- go.js节点字体设置
- python怎样画动态文字_Python制作动态字符图的实例
- Shell基本应用(学习笔记)
- Android开发布局 案例一
- 规则库捕获漏洞信息专用脚本
- android webview 加载过程,实战:七步完成Android Webview图片加载
- FPGA series # 基于SDx的fft函数加速
- 【windows】中下载并安装Python(简单明了)
- 如何修改本地hosts文件
热门文章
- matlab 模糊pid mimo 对应,双关节机械手的模糊PID控制系统设计.doc
- python画相关性可视化图_Python可视化matplotlibseborn16-相关性热图
- 数据结构c语言版第二版第三章课后答案,数据结构(C语言版)习题集答案第三章.doc...
- 中文论文万能句型_干货|SCI论文写作的万能句型~
- signature=3e4864de0d5dd0316b95f8329f488c7d,一种农机车桥轮毂油封
- nuxt页面跳转_还不会Nuxt.js的速进!
- layui select 修改_layui怎么修改select的值?
- mysql随机查询多条记录表_MySQL 随机查询表中N条记录
- Flink AggOperator 增量聚合函数
- VSCode Editing Code