redis内存淘汰和持久化_redis 持久化

一、RDB持久化

(一)、RDB介绍

可以在指定的时间间隔内生成数据集的 时间点快照(point-in-time snapshot),新快照会覆盖老快照

(二)、优点

压缩格式,恢复速度快,适合于用做备份,主从复制也是基于RDB持久化功能实现的

(三)、缺点

不是实时的,会有数据丢失,操作比较重量

(四)、原理

5e9b2caf7b7da7a7e78156d9c54cd221.png

(五)、配置方法

第一步:修改配置文件

vim /data/6379/redis.conf

#添加
dir /data/6379                  #持久化文件存储位置
dbfilename dump.rdb      #RDB持久化数据文件
save 900 1                        #900秒内如果有一次变更则进行一次持久化
save 300 10                      #300秒内如果有10次变更则进行一次持久化
save 60 10000                  #60秒内如果有10000次变更则进行一次持久化

第二步:重新启动redis

redis-cli -a 123456 shutdown 
redis-server /data/6379/redis.conf

注意事项

1、没配置save参数时

1.shutdown/pkill/kill都不会持久化保存

2.可以手动执行bgsave

3、配置save参数时

1.shutdown/pkill/kill均会自动触发bgsave持久化保存数据

2.pkill -9 不会触发持久化

3、恢复时

1.持久化数据文件名要和配置文件里定义的一样才能被识别

2.RDB文件只有一个数据文件,迁移和备份只要这一个RDB文件即可

二、AOF持久化

(一)、AOF介绍

AOF(append-only log file):记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集

AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾

(二)、优点

可以最大程度保证数据不丢

(三)、缺点

日志记录量级比较大,持久化时间较长

(四)、原理

b21f3b32485b415781177975725ae61b.png

(五)、配置方法

第一步:修改配置文件

vim /data/6379/redis.conf

#添加
appendonly yes            #开启AOF持久化
appendfilename "redis.aof"      #持久化存储文件
appendfsync always     #每次操作成功都执行一次持久化
#或者  建议设置
appendfsync everysec  #每秒钟提交一次持久化
#或者
appendfsync no            #不进行持久化

第二步:重启redis

redis-cli -a 123456 shutdown 
redis-server /data/6379/redis.conf

(六)、AOF重写机制

1、重写机制原理

(1)redis主进程通过fork创建子进程

(2)子进程根据当前redis内存中的数据生成数据库重建命令序列到临时文件中

(3)父进程继承client的新请求,把请求中的写操作继续追加至原来的AOF文件(而不是直接写入临 时文件,避免写操作失败带来的问题);额外地,这些新的写请求还会被放置于一个缓冲队列中

(4)子进程重写完成,会通知父进程,父进程把缓冲中的命令写到临时文件中

(5)父进程将临时文件替换掉旧的AOF文件

2、重写机制注意事项

和RDB一样,如果当前的数据量巨大,那么创建子进程的过程会很耗时。

在大数据的处理工作中,文件的删除也是一项比较麻烦的工作。

像我们普通的笔记本电脑,删除一个几GB的文件都是一项很耗时的工作,

更何况大数据的量级远远大过我们日常使用的数据。

所以在替换aof文件时,如果旧的aof很大,删除它也是一个很耗时的过程。

当然这并不是aof或者redis的缺点,只是可能会出现的一个客观情况

59098fc66a32cde461483782d577ce1c.png

AOF注意事项

1.aof修复命令不要⽤,因为他的修复⽅案⾮常粗暴,⼀⼑切,从出错的地⽅到最后全部删除

2.任何操作之前,先备份数据

三、redis 持久化方式有哪些?有什么区别?

rdb:基于快照的持久化,速度更快,一般用作备份,主从复制也是依赖于rdb持久化功能

aof:以追加的方式记录redis操作日志的文件。可以最大程度的保证redis数据安全,类似于mysql的binlog

四、save bgsave 区别?

共同点:都能实现redis持久化功能。

不同点:

SAVE: 前台,阻塞redis正常写入,直到持久化完成。

BGSAVE:后台,开启子线程,异步的持久化功能,不会阻塞redis正常写入。

五、AOF和RDB如何选择

1.开启混合模式

2.开启aof

3.不开启rdb

4.rdb采⽤定时任务的⽅式定时备份

5.可以从库开启RDB进⾏备份

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/534755.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android实现后台静默安装,Android 静默安装实现方法

Android静默安装的方法,静默安装就是绕过安装程序时的提示窗口,直接在后台安装。注意:静默安装的前提是设备有ROOT权限。代码如下:/*** 静默安装* param file* return*/public boolean slientInstall(File file) {boolean result …

pythonwrite连续写入_python文件写入write()的操作

本文实例为大家分享了python文件写入write()的操作的具体代码,供大家参考,具体内容如下filename pragramming.txtwith open(filename,w) as fileobject: #使用‘w来提醒python用写入的方式打开fileobject.write(i love your name!\ni love your cloth!\…

最新变态传奇android,新开变态传奇单职业

新开变态传奇单职业这款传奇手游中拥有这极为丰富的游戏玩法,玩家既可以进入各种副本中,挑战那些强大的副本boss,也可以和自己的兄弟好友们一起组队,前往各种跨服战场,和全服的高手玩家们一起进行最激烈的战斗。游戏中…

spark sql读取hive底层_[大数据]spark sql读写Hive数据不一致

在大数据公司中,任何一家公司都不会只使用一个框架吧?!skr,skr~~那我们今天就来聊一段 Hive 与 Spark的爱恨情仇就像在一些场景中,需要将外部的数据导入到Hive表中,然后再对这些数据进行额外的处理&#xf…

android手机微信收藏功能实现,Android模仿微信收藏文件的标签处理功能

最近需要用到微信的标签功能(如下图所示)。该功能可以添加已有标签,也可以自定义标签。也可以删除已编辑菜单。研究了一番。发现还是挺有意思的,模拟实现相关功能。该功能使用类似FlowLayout的功能。Flowlayout为一个开源软件(https://github.com/ApmeM/…

strocli64 源码_storcli 简易使用介绍

MegaCli 是LSI公司官方提供的SCSI卡管理工具,由于LSI被收购变成了现在的Broadcom,所以现在想下载MegaCli,需要去Broadcom官网查找Legacy产品支持,搜索MegaRAID即可。关于MegaCli 的使用可以看我的另一篇博文,这里就不再…

android 电话号码标记,强化电话标记功能 360手机卫士3.0安卓版体验

作为“房产商”,上海仁恒置地集团营销总监姚伟示通常每天也要接到20个左右房产或其他推销电话。“现在已经形成了一个机械的对应方式,对于此类推销电话,很多人包括我自己已经麻木了。”针对这种情况,360手机卫士发布了3.0.0正式版…

lua判断字符不为空或空格_Lua判断字符串前缀是否为指定字符的3种方法

在写 lua debugger 的时候,我需要判断一个字符串的前缀是不是 "" 。有三个方案:1.比较直观的是 string.sub(str,1,1) ""2.感觉效率比较高的是 string.byte(str) 643.或者是 string.find(str,"") 1我推荐第三种。(注&am…

android 左滑按钮,android开发类似微信列表向左滑动按钮操作

话不多说,直接上代码,有详细的注释的。layout布局中:主要是跟大家说一下listview怎么写:android:id"id/pull_refresh_viewId"android:layout_width"match_parent"android:layout_height"match_parent&qu…

眼图 非差分线_利用眼图解决USB在布线中的信号完整性问题

EDA365欢迎您登录!您需要 登录 才可以下载或查看,没有帐号?注册x本帖最后由 lifree 于 2020-2-5 14:37 编辑2 ]3 p D% B4 \ {/ n# V& |( A& p O通用串行总线USB (Universal Serial Bus)协议从1.0版本发展到现在,由于数据…

向量表示 运动抛物线_流动的美丽函数——抛物线浅谈

事先说明:笔者初三,如在叙述中有不严谨的地方,还请诸位指出,自当感激不尽。(本文默认受众对象为初高中生,因此抛物线一律采取了yax的形式,高中的同学们可以应用旋转矩阵把它变到y2px的形式QAQ笔…

android 获取已安装 错误代码,android获取手机已经安装的app信息

Android获取手机已安装APP(系统/非系统)效果图主体代码private ListView mlistview;private ListpackageInfoList;private ListapplicationInfoList;private MyAdapter myAdapter;private PackageManager pm;Overrideprotected void onCreate(Bundle savedInstanceState) {supe…

android与ios ui切图关系,APP-IOS与Android界面设计与切图

做一全套的APP设计,流程是:1、界面设计:设计IOS界面;设计Android界面。2、切图:切IOS的2倍图和3倍图;切Android的hdpi,xhdpi,xxhdpi这三个尺寸的图。3、标注:以px为单位标注IOS界面的尺寸&#…

js禁止鼠标滑轮_js实现鼠标滑动到某个div禁止滚动

本文实例为大家分享了js实现鼠标滑动到某个div禁止滚动的具体代码,供大家参考,具体内容如下项目中碰到一个场景就是当鼠标滑倒某个div的时候,滑动鼠标页面不再滚动。这里主要是当鼠标滑动到该div时,监听滚轮事件并通过preventDefa…

android app应用后台休眠,安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行...

原标题:安卓手机锁屏后程序自动关闭,怎么设置手机app允许锁屏后台运行安卓手机锁屏后,很多程序就会自动关闭,实际上,这是安卓手机的一种保护机制。为了使系统能够流畅稳定的运行以及更加省电,它都会在手机锁…

ps怎么清屏_黑洞PS大赛刷屏!最后一张扎心了……

事件视界望远镜(EHT)项目组和中国科学院共同在上海天文台发布由EHT“拍下”的人类历史上首张黑洞照片这意味着人类成功获得了超大黑洞的第一个直接视觉证据黑洞首次露出真容!据说宇宙诞生了138亿年年龄最大的黑洞也已经超过了100亿岁经过了这么久黑洞家族的成员才终…

linux和windows和鸿蒙,linux很好,但为何大家都用Win,鸿蒙系统站错阵营了吗?

原标题:linux很好,但为何大家都用Win,鸿蒙系统站错阵营了吗?由目前已知信息可知,华为“鸿蒙系统”很可能基于linux开源程序搭建,这个特点与苹果微软由很大不同。苹果手机目前主要使用Objective-C程序语言开…

centos7磁盘逻辑分区命令_CentOS7 磁盘分区(主分区、扩展分区和逻辑分区)的创建、挂载与删除...

创建磁盘分区查看磁盘分区情况:fdisk -l[rootmodel ~]# fdisk -l //查看系统中所有磁盘的分区列表Disk/dev/sda: 107.4 GB, 107374182400 bytes, 209715200sectorsUnits sectors of 1 * 512 512bytesSector size (logical/physical): 512 bytes / 512bytesI/O size…

php使用webservivce_JWS服务开发使用指南

均支持该版本&#xff0c;主要你的web.xml文件中必须制定2.5版本xmlversion"1.0"encoding"UTF-8"?><web-appxmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xmlns"http://java.sun.com/xml/ns/javaee"xmlns:web"ht…

android sdk是灰的,Android Studio 2.3 sdk管理器标签灰显

Android Studio 2.3 - >配置 - > SDK管理器。 这些选项卡呈灰色显示&#xff1a; SDK工具&#xff0c;SDK更新站点。此外&#xff0c;“Show Package Details”复选框呈灰色。 系统正常更新。没有错误消息。Android Studio 2.3 sdk管理器标签灰显我认为这发生在Studio 2.…