当前位置: 首页 > news >正文

免费空间域名可以做淘宝客网站推广吗摄影作品投稿网站

免费空间域名可以做淘宝客网站推广吗,摄影作品投稿网站,亚马逊购物官网入口,网站flash代码各位看官,大家早安午安晚安呀~~~如果您觉得这篇文章对您有帮助的话欢迎您一键三连,小编尽全力做到更好 欢迎您分享给更多人哦今天我们来学习:Redis的持久化策略-AOF和RDB(详细图解)灵魂三连问1. Redis的持久化是什么&a…

各位看官,大家早安午安晚安呀~~~

如果您觉得这篇文章对您有帮助的话

欢迎您一键三连,小编尽全力做到更好
欢迎您分享给更多人哦

今天我们来学习:Redis的持久化策略-AOF和RDB(详细图解)

灵魂三连问

1. Redis的持久化是什么?

2. 包括哪几种?

3. 如何选择?

解决的问题:redis在运行时,服务器宕机了,运行内存和里面的数据就没了,这就是持久化的意义所在。

Redis的持久化策略分为哪几种:

RDB和AOF两种

1.RDB( 写时复制的方法(COW)

  • RDB 文件是磁盘快照

  • 当 Redis 重启时 才会加载 RDB 文件到内存,恢复数据。

优点:快速恢复

缺点:RDB 是某一时间点的快照,两次快照之间的数据可能丢失,而且是RDB文件是二进制文件,可能完全不可用

分为主动执行和被动触发(配置文件)

先说一下RDB结构:RDB文件是经过压缩的二进制文件,默认采用LZF算法对文件做压缩处理。

新的 RDB 文件生成后不会直接“保存到数据库”,而是作为一个独立的持久化文件存储在磁盘上

  • REDIS:是否是RDB文件???
  • db_version: RDB文件的哪一个版本???
  • databases:包括了0个或者多个数据库   和   库中的 键值对数据(数据)
  • EOF:常量,文件正文内容的结束
  • check_sum:刚才的四个部分的内容计算得出的

在载入RDB文件时会将载入的数据计算得出的校验和 与 check_sum进行比较判断是否异常

1.1.1RDB持久化主动触发:save和bgsave两种方式

save方法执行时,会阻塞redis一直到持久化完成才不会继续阻塞,一般不会用。

1.1.2RDB持久化主动触发:bgsave

图解:

=》

第二种bgsave在主进程中会fork个子进程,fork过程中,redis是阻塞的

=》

接着子进程来进行持久化,此时就不再阻塞了。持久化时子进程会去遍历所有的KV,然后调用rdbsaveobject函数将数据进行二进制序列化写入到RDB文件中。

=》这个过程中主进程仍然可以修改原来的数据。

而主进程在执行修改操作时,对应的数据就会被复制一份生成副本,然后子进程会把这个副本写入RDB中。

1.2RDB持久化被动触发(配置的方式)

通过配置的策略,以下是三个默认的策略

  • 900s内有一个key发生变化,
  • 300s内有10个key发生变化,
  • 60s内有10000个Key发生变化会备份

用的是bgsave方式

1.3总结:

如果对数据保存要求比较高,那么rdb不是一个好选择,如果所在机器宕机了,还没有持久化的数据就会丢了

聪明的你肯定会想反正子进程持久化也不阻塞,那每秒做一次快照不就最大程度避免丢失了吗?

其实不行

1.一方面很频繁的将全量数据写入磁盘,磁盘会有很大的压力。

2.另一方面bgsave,fork子进程会包括子进程出来,fork这个过程还是会阻塞的,而且使用的内存越大,阻塞时间越长。

2.AOF:默认关闭,需要开启

Aof:(33策略:)

aof它是以日志的方式来记录每一个写命令的操作。执行时,不像rdb每次都弄一个完整的文件出来,而是采用在文件中追加的形式,

当redis启动后读取文件来恢复数据时,其实是按照内容将命令从头到尾执行一遍。aof默认是关闭的,需要在配置中开启,再向日志文件中写入时,并不是直接写到磁盘里。

2.1AOF的持久化策略:

首先客户端的写命令会采用追加的形式放到aof缓冲区中接着会根据配置中的持久策略来缓冲区的数据同步到磁盘里,持久化策略也是在配置中设置的。

  • 第一种:是每次有数据修改时都会写入aof文件,这种每个命令都同步到磁盘的操作,对磁盘压力是很大的。
  • 第二种:appendsync everysec它是每秒同步一次,该策略是默认的,这种每秒同步一次的频率推荐使用。在性能和数据安全上平衡性做的不错。
  • 第三种是根本就不做持久化数据,不建议使用aof。

2.2.AOF重写:重写触发可以分为主动触发和被动触发,(都是分为主动和被动)

解决的问题:随着执行命令越来越多,aof文件也会越来越大,这就需要对aof文件进行重写来缩小体积。如何重写(如何缩小文件???)

  1. 过期的数据不再写入文件
  2. 无效的命令不再写入文件,比如重复设置set name小红,set name小明就可以只保留第二个,
  3. 而删除命令就可以直接丢弃掉,还可以合并命令,将两个set可以合并成一个M site,这样执行的命令少了,aof体积自然就小了

2.2.1.主动触发:

直接调用这个命令bgrewriteof,该命令的执行与bgsave有些类似,也是主进程fox子进程后再执行重写。

2.2.2被动触发:
通过配置来实现。

第一个参数表示aof文件大小超过指定值时,满足触发条件默认为64MB。

第二个参数表示,当aof文件大小超过上次重写后文件大小的百分比是满足触发条件,默认值为100只有当这两个条件同时满足了,才会自动触发aof重写

2.2.3.重写步骤:

图解:

首先主进程fork子进程。结构中有aof缓冲区,还有个aof重写缓冲区,执行命令会同时写到这两个缓冲区中。aof缓冲区会根据持久化的策略,将命令同步到磁盘里,从而生成aof文件。

=》

当满足重写aof条件时,子进程会执行重写机制,生成新的文件完成后会给主进程一个信号。主进程接收后,会将aof重新缓冲区中的所有数据再追加到新aof文件的末尾,接着将新文件来替换旧文件,之后所有命令都会追加到新aof的文件中。

3.同时开启

如果同时开启了RDB和AOF持久化会优先使用Aof文件来还原数据

4.混合持久化

而RDB和AOF还可以混合持久化,结合了RDB的快速恢复和的数据完整优点。首先当前数据是以RDB的格式保存,而新的命令是以aof的格式保存。

混合持久化,在AOF重写时,首先将当前数据以rdb的格式写入到新aof文件的开始位置,如果有新的命令会追加到文件末尾

上述就是Redis的持久化策略-AOF和RDB(详细图解)的全部内容啦,不知道您对文章中的问题和思想是否都学会理解了呢?

能看到这里相信您一定对小编的文章有了一定的认可。

有什么问题欢迎各位大佬指出
欢迎各位大佬评论区留言修正~~

您的支持就是我最大的动力​​​!!!

http://www.dtcms.com/a/542616.html

相关文章:

  • 临沧网站建设ynyue淘宝客网站名
  • 如何做商业网站推广建设网站需要的材料
  • 全屏定时提醒工具
  • 网站建设的设立方式淘宝网官网登录
  • 用百度云服务器做网站帝国后台网站如何设置自动刷新首
  • 盐城网站建设网站制作推广wordpress的qq邮件列表qq邮件列表订阅rss源地址怎么找
  • 用腾讯云做购物网站视频做网站保证效果
  • 山东省建设工程管理局网站ps制作网站logo
  • 响应式网站宽度236企业邮箱登陆入口
  • 网站开发商外包论坛网站开发中遇到的问题
  • 【穿越Effective C++】条款7:为多态基类声明virtual析构函数——C++多态资源管理的基石
  • wordpress几个网站共用用户wordpress不能更新
  • 网站建设空间是指什么app开发平台
  • 【仿RabbitMQ的发布订阅式消息队列】--- 模块设计与划分
  • 102.二叉树的层序遍历
  • 互粉的网站是怎么做的浏览器网站入口
  • 企业网站建设参考资料WordPress首页站内搜索
  • 宁波做网站优化设计制作一个 个人主页网站
  • 合肥做公司网站一般多少钱智能建站加盟电话
  • app外包网站上海有什么公司名称
  • 做网站需要几天温岭app开发公司
  • 【java】【springboot】队列涉及订单关闭数据返还异常
  • 建立主题网站的一般步骤哈什么网一个网站做ppt
  • 红色企业网站攸县网站制作公司
  • 夜莺监控设计思考(三)时序库、agent 的一些设计考量
  • 深圳个性化建网站服务商西安网站建设工作室
  • 大连住建部官方网站网站建设经典案例
  • 如何网上建设网站绵阳网站建设策划内容
  • 【LeetCode】91. 解码方法
  • 网站设计的规范安装wordpress插件目录下