利用永久性存储介质将数据进行保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。 防止数据的意外丢失,确保数据安全性 save 触发方式 谁执行:redis 操作者(用户) 如果是第一次执行save指令,会生成一个.rdb文件,之后再执行save,都会更新.rdb文件。 redis只支持单线程,当多个客户端向服务器发送指令时,指令按顺序执行,save指令的执行会阻塞当前Redis服务器,直到当前RDB过程完成为止,有可能会造成长时间阻塞,线上环境不建议使用。 bgsave 触发方式 谁执行:redis操作者(用户)发起指令,redis服务器控制指令执行 执行该命令时,Redis会在后台异步进行快照操作,同时还可以响应客户端请求。 bgsave命令是针对save阻塞问题做的优化。Redis内部所有涉及到RDB操作都采用bgsave的方式,save命令可以放弃使用。 自动触发(save 配置) 谁执行:redis服务器发起指令(基于条件) save配置的相关配置和save指令的相关配置一样。 自动触发方式底层使用的还是bgsave指令。 当客户端向服务器发送set指令,服务器接受到这条指令,并没有马上记录,而是放到了一个临时的区域(AOF 写命令刷新缓冲区),根据AOF的触发机制来决定什么时候将命令写入AOF文件中。 优缺点 当对同一个key,连续进行多次同样的操作,AOF会记录多次,而一般我们需要的是最后一次的结果,前n-1次的操作对我们来说并没有用,记录的话,会浪费内存。 随着命令不断写入AOF,文件会越来越大,为了解决这个问题,Redis引入了AOF重写机制压缩文件体积。AOF文件重写就是将对同一个数据的若干条命令执行结果转化成最终结果数据对应的指令进行记录,就是对aof文件的整理、压缩。 AOF 手动重写原理和bgsave 的原理类似,都是服务器调用Linux的fork函数生成一个子进程执行相关操作。 AOF 重写原理 非重写 重写文章目录
1. 持久化简介
1.1 什么是持久化
1.2 为什么要进行持久化
1.3 持久化过程保存什么
2. RDB
2.1 RDB 简介
2.2 RDB 三种触发方式
什么时间执行:即时(随时执行)
干什么事:保存数据
save 手动执行一次保存操作
当再次启动redis服务器和客户端的时候,redis 会根据.rdb 文件将数据加载内存。
说明:设置生成的二进制文件名,默认值为 dump.rdb
经验:通常设置为dump-端口号.rdb
说明:设置存储.rdb文件的路径
经验:通常设置成存储空间较大的目录中,目录名称data
说明:设置存储至本地数据库时是否压缩数据,默认为 yes,采用 LZF 压缩
经验:通常默认为开启状态,如果设置为no,可以节省 CPU 运行时间,但会使存储的文件变大(巨大)
说明:设置是否进行RDB文件格式校验,该校验过程在写文件和读文件过程均进行
经验:通常默认为开启状态,如果设置为no,可以节约读写性过程约10%时间消耗,但是存储一定的数据损坏风险
什么时间执行:即时(发起),redis服务器合理的时间执行
干什么事情:保存数据
bgsave 手动启动后台保存操作,但不是立即执行
说明:后台存储过程中如果出现错误现象,是否停止保存操作
经验:通常默认为开启状态
自动触发是由我们的配置文件(通过设置save属性)来完成的,底层还是通过bgsave 来执行的。
什么时间执行:满足条件的时候执行
干什么事:保存数据
save second changes
满足限定时间范围内,key的变化次数达到指定数即进行持久化,然后重新计数,如果指定的时间范围内,没有那么多次变化,就重新计时计数。
second :监控时间范围,单位是秒
changes:监控key的变化量,增删改都算一次变化,get操作不算
在conf中进行配置
save 900 1 900秒内,每改变一次,就进行持久化
save 300 10 300秒内,如果改变10次就持久化一次
2.3 RDB三种触发方式对比
2.4 RDB 优缺点
3. AOF
3.1 AOF 概念
3.2 AOF 工作流程
3.3 AOF 三种触发机制(appendfsync)
3.4 AOF 相关配置
appendonly yes|no 是否开启AOF持久化功能,默认为不开启状态
appendfsync always|everysec|no AOF触发方式
appendfilename filename AOF持久化文件名,默认文件名未appendonly.aof建议配置为 appendonly-端口号.aof
dir AOF持久化文件保存路径,与RDB持久化文件保持一致即可
3.5 AOF 重写
bgrewriteaof
auto-aof-rewrite-min-size size
auto-aof-rewrite-percentage percentage
aof_current_size
aof_base_size
aof_current_size > auto-aof-rewrite-min-size
( aof_current_size – aof_base_size )/ aof_base_size >= auto-aof-rewrite-percentage
也就是说,当缓冲区当前尺寸(aof_current_size)大于你设置的自动重写最小尺寸(auto-aof-rewrite-min-size )时就重写,或者缓冲区当前尺寸(aof_current_size)与基础尺寸的差再比上基础尺寸得到的百分比当大于你自己设置的自动重写百分比(auto-aof-rewrite-percentage)
3.6 AOF 优缺点
4. RDB 与 AOF 区别
5. RDB 与 AOF的选择
AOF持久化策略使用everysecond,每秒钟fsync一次。该策略redis仍可以保持很好的处理性能,当出 现问题时,最多丢失0-1秒内的数据。
注意:由于AOF文件存储体积较大,且恢复速度较慢
数据可以良好的做到阶段内无丢失(该阶段是开发者或运维人员手工维护的),且恢复速度较快,阶段 点数据恢复通常采用RDB方案
注意:利用RDB实现紧凑的数据持久化会使Redis降的很低
6. 参考
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算