这篇文章主要讲解了“复述,数据持久化的概念是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“复述,数据持久化的概念是什么”吧!
<编辑类="目录">目录编辑>- <李>
一、数据持久化的概述
李>- <李>
1, RDB持久化
李> <李>2,开启AOF
李>二.RDB和AOF的优缺点
李>- <李>
, 1, RDB持久化优缺点
李> <李>2, AOF持久化优缺点
李>一、数据持久化的概述
复述是内存数据库,数据都是存储在内存中,为了避免服务器断电等原因导致复述,进程异常退出后数据的永久丢失,需要定期将复述中的数据以某种形式(或命数据令)从内存保存到硬盘;当下次复述,重启时,利用持久化文件实现数据恢复。除此之外,为了进行灾难备份,可以将持久化文件拷贝到一个远程位置(NFS)。
复述,提供两种方式进行持久化:
RDB持久化:原理是将里德在内存中的数据库记录定时保存到磁盘上。(类似快照)
AOF持久化(添加alt="复述,数据持久化的概念是什么">
1, RDB持久化
(1) RDB持久化是指在指定的时间间隔内将内存中当前进程中的数据生成快照保存到硬盘(因此也称作快照持久化),用二进制压缩存储,保存的文件后缀是RDB;当复述,重新启动时,可以读取快照文件恢复数据。
复述,数据库文件,全称Redis 数据库 ——数据持久化方式之一 ——数据持久化默认方式 ——按照指定时间间隔,将内存中的数据集快照写入硬盘——快照术语叫快照 安康;恢复时,将快照文件直接读入内存 ·定义RDB文件名 安康;dbfilename “dump.rdb",,, #文件名
(2)触发保存
优化设置,数据从内存保存到硬盘的频率 安康;节省900,1,,,,,# 15分钟且有1个关键改变时保存 安康,节省,300,10,,,,,# 5分钟且有10个关键改变时 安康;节省60,10000,,,,# 1分钟且有10000个键改变时 手动进行存盘 安康;节省;,,,#阻塞写存盘,保存过程中复述,不允许写入新数据 安康;bgsave ,, #不阻塞写存盘
vim/etc/redis/6379.参看
# 219行- - - - - - - - - -以下三个省条件满足任意一个时,都会引起bgsave的调用 节省;900,1,:当时间到900秒时,如果复述,数据发生了至少1次变化,则执行bgsave 节省;300,10,:当时间到300秒时,如果复述,数据发生了至少10次变化,则执行bgsave 节省;60,10000,:当时间到60秒时,如果复述,数据发生了至少10000次变化,则执行bgsave # 242行- - - - - - - - - -是否开启RDB文件压缩 rdbcompression 是的 # 254行- - - - - - - - - -指定RDB文件名 dbfilename dump.rdb # 264行- - - - - - - - - -指定RDB文件和AOF文件所在目录 dir /var/lib/复述/6379
(3)其他自动触发机制
除了拯救mn以外,还有一些其他情况会触发bgsave:
在主从复制场景下,如果从节点执行全量复制操作,则主节点会执行bgsave命令,并将rdb文件发送给从节点。
执行关闭关闭命令时,也自动执行rdb持久化。
(4)执行流程:
使用rdb文件恢复数据 ·备份数据 ——备份dump.rdb 文件到其他位置 )#,cp 数据库目录/dump.rdb ,备份目录 ·恢复数据 ——拷贝备份文件到数据库目录,重启复述,服务 )# cp 备份目录/dump.rdb ,,数据库目录/
(4)启动时加载
RDB文件的载入工作是在服务器启动时自动执行的,并没有专门的命令。但是由于AOF的优先级更高,因此当AOF开启时,复述,会优先载入AOF文件来恢复数据,只有当AOF关闭时,才会在复述,服务器启动时检测RDB文件,并自动载入。服务器载入RDB文件期间处于阻塞状态,直到载入完成为止。
复述(AOF关闭的时候)载入RDB文件时,会对RDB文件进行校验,如果文件损坏,则日志中会打印错误,复述,启动失败
。AOF持久化
RDB持久化是将进程数据写入文件,而AOF持久化,则是将复述,执行的每次写,删除命令记录到单独的日志文件中,查询操作不会记录;当复述,重启时再次执行AOF文件中的命令来恢复数据。