(Redis设计与实现-4) 持久化

news/2024/2/29 4:22:31

一.RDB

RDB(Redis DataBase),也常叫做snapshots:是在某个时间点将数据写入一个临时文件,持久化结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。 snapshot首先将数据写入临时文件,当成功结束后,将临时文件重名为dump.rdb。
//使用配置文件进行持久化
save 900 1 #900秒内如果超过1个key被修改,则发起快照保存
save 300 10 #300秒内如果超过10个key被修改,则发起快照保存//使用命令进行持久化
redis-cli -h ip -p port save #用主线程进行持久化,这种方式会阻塞所有client请求
redis-cli -h ip -p port bgsave #另外开启一条子线程进行持久化


二.AOF

AOF(Append-only file):将“操作 + 数据”以格式化指令的方式追加到操作日志文件的尾部,在append操作返回后(已经写入到文件或者即将写入),才进行实际的数据变更,“日志文件”保存了历史所有的操作过程;当server需要数据恢复时,可以直接replay此日志文件,即可还原所有的操作过程。

(1).同步写入

AOF是文件操作,对于变更操作比较密集的server,那么必将造成磁盘IO的负荷加重;此外redis提供了3中aof记录同步选项(appendfsync):
always:每一条aof记录都立即同步到文件,这是最安全的方式,也以为更多的磁盘操作和阻塞延迟,是IO开支较大。
everysec:每秒同步一次,性能和安全都比较中庸的方式,也是redis推荐的方式。如果遇到物理服务器故障,有可能
导致最近一秒内aof记录丢失(可能为部分丢失)。
no:redis并不直接调用文件同步,而是交给操作系统来处理,操作系统可以根据buffer填充情况/通道空闲时间等择机
触发同步;这是一种普通的文件操作方式。性能较好,在物理服务器故障时,数据丢失量会因OS配置有关。

(2).压缩AOF日志文件

AOF文件会不断增大,它的大小直接影响“故障恢复”的时间,而且AOF文件中历史操作是可以丢弃的。AOF rewrite操作就是“压缩”AOF文件的过程,当然redis并没有采用“基于原aof文件”来重写的方式,而是采取了类似snapshot的方式:基于copy-on-write,全量遍历内存中数据,然后逐个序列到aof文件中。
//使用配置文件进行持久化
no-appendfsync-on-rewrite no  #在aof-rewrite期间,appendfsync是否暂缓文件同步
auto-aof-rewrite-min-size 64mb  #aof文件rewrite触发的最小文件尺寸(mb,gb)
auto-aof-rewrite-percentage 100  #相对于“上一次”rewrite,本次rewrite触发时aof文件应该增长的百分比。 //使用命令进行持久化
redis-cli -h ip -p port bgrewriteaof #开启一个子进程来完成rewrite

https://www.jiucaihua.cn/news/show-1888350.html

相关文章

DSSM学习——入门及实验篇

DSSM学习报告 从文本挖掘的知识图谱开始 当对一个领域只了解某些部分的时候,从一个知识图出发是最好的。 查概念可以查到,DSSM是通过搜索引擎里 Query 和 Title 的海量的点击曝光日志,用 DNN 把 Query 和 Title 表达为低纬语义向量&#…

1. 用EasyTouch在unity构建有遥感控制的手游

1. 一些有关unity安卓平台的设置 a. 添加安卓模块 在unity里面选择添加安卓模块 然后添加 点击DONE等待安装 b. 更改平台 选择Switch Platform c. 安装安卓模拟器 我这里装了雷电模拟器,它作为商业模拟器,不适合进行调试,但是凑合着用还…

Jupyter 快速入门

为什么要用Jupyter Notebook 以区块执行,方便看到每个小部分运行的结果。可以在中间插入Markdown语块,对于注释和相关图例说明非常方便。而且有很多奇怪的魔法函数,例如说“程序自动运行多次计算时间”,“插入特殊图例”等。而且…

一文搞懂决策树原理

背景 参加了NUS人工智能的远程夏令营,老师一个小时讲完决策树,讲的我头晕脑胀,写篇博客来总结一下。 前序知识 了解各种“学习”的类型。 如监督学习,非监督学习等。 对概率知识有基本了解。 了解贝叶斯定理等(我下…

在Windows下使用svn命令行教程及svn命令行的解释

本文转载自:https://blog.csdn.net/yangxiao2shi/article/details/50719286/ 以前在公司一直使用git,现在的公司改用svn,一时间还真的不知道如何下手,在网上搜寻了很多大神和官网文档的指导,总结了下面一份教程&#x…

429首都网络安全日 网络安全需共同参与

2018年4月26日,第五届4.29首都网络安全日在北京展览馆盛大开幕。在本届北京国际互联网科技博览会上,来自国内外的网络安全及信息安全知名厂商、互联网公司、创新企业、权威组织携最新产品亮相,展品范围涵盖云计算、大数据、移动安全、物联网、…

从小立志当“司机”,却阴差阳错成为了阿里云PD

“不是每个人都有立功立德立言的机遇,但是每个人都可以努力成为最好的自己” 曾经,我只想当一个公交车司机 很多人小时候都有成为超级英雄的梦想,不过我没有。 我小时候的梦想是成为一名公交车司机,因为公交车能坐很多人&#xff…

卡尔曼滤波——6.评估高斯分布

给定均值和方差求高斯函数值 转载于:https://www.cnblogs.com/fuhang/p/8980657.html

关于梯度爆炸和梯度消失的碎碎念

背景 刚开始接触深度学习。希望做一些关于梯度消失和梯度爆炸的直观的理解。 碎碎念1——深度学习的直观理解 核心结构还是输入层-隐藏层-输出层。核心的逻辑还是用一个带权重的结构去拟合一个非常复杂的函数。更新权重的方法依旧是对整个网络的每一个权重都进行在梯度上的下…

李宏毅机器学习——作业三(CNN神经网络)

需求 项目资料集为网络上收集到的食物照片,总共11类: BreadDairy productDessertEggFried foodMeatNoodles/PastaRiceSeafoodSoupVegetable/Fruit 数据集链接:https://reurl.cc/3DLavL Kaggle 网址:https://www.kaggle.com/c/m…
最新文章