只包含一个文件
性能最大化
比aof启动效率高,数据量大的时候
劣势:
数据可能丢失,子进程写数据,停几百毫秒
RDB持久化
优势:
1、只包含一个文件,文件备份策略定期配置,恢复系统灾难故障快
2、转义至其他介质方便
3、性能最大化,redis开始持久化的时候,只是分叉出新的进程,由子进程完成持久化工作,避免服务器进程完成I/O操作,启动效率高
劣势:
1、无法实现数据高可用(系统在定时任务之前宕机,数据容易丢失)
2、通过fock分叉子进程完成工作,数据集大的时候,服务器需要停止几百毫秒甚至1秒
配置:
1、redis.conf 默认dbfilename dump.rdb存储文件
RDB优势:
只包含一个文件,对文件备份是非常完美的
性能最大化,通过子进程完成
数据很大,启动比AOF快
RDB劣势:
数据丢失的风险
通过子进程,可能服务器要停几秒。。
RDB配置:
save 900 1
save 300 10
表示900秒1个key变化或者300秒10个key变化的时候重新转储rdb
RDB是定时转储文件的方式进行持久化
------------------------------
--RDB方式
------------------------------
行程一个文件,好备份,好还原
劣势 30秒一次,到25秒服务器出问题了,没写硬盘,那25秒数据就没了
redis.windows.conf配置
save 900 1 --每 900毫秒 1个key修改执行
save 300 10
save 60 10000
dbfilename dump.rdb --保存文件名
dir ./ --文件路径
RDB
--redis数据库只包含一个文件,对于文件备份而言是非常完美的,一旦系统出现灾难性的故障是比较方便恢复的,定时配置。
--可以将一个单独的文件压缩后转移到其他存储介质上 。如:拷贝到其他地方,恢复时使用就好。
--性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作
在redis.conf进行RDB的配置
save 900 1 每900s至少有1个key发生变化
Redis持久化的RDB的方式
优势:
--redis数据库只包含一个文件,对于文件备份而言是非常完美的,一旦系统出现灾难性的故障是比较方便恢复的,定时配置。
--可以将一个单独的文件压缩后转移到其他存储介质上 。如:拷贝到其他地方,恢复时使用就好。
--性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作
配置
vim redis.conf
每900秒至少有一个key发生变化
每300秒至少有十个key发生变化
每60秒至少有10000个key发生变化
RDB
优势
1. 方便归档
2. 方便压缩恢复数据
3. 性能最大化
劣势
1.数据易丢失
2. 数据集较大时会占用进程
配置
在redis.conf进行RDB的配置
1. save 900 1 //每900s至少有1个key发生变化
2. defilename dump.rdb //保存的文件名
3. dir ./ 路径
dbfilename dump.rdb 默认文件名
dir ./ 保存在当前路径下
save 900 1 :900秒内如果超过1个key被修改,则发起快照保存
save 300 10: 300秒内容如超过10个key被修改,则发起快照保存
save 60 10000
优势:
1、redis的数据库只包含一个文件,对于文件备份来说很完美
2、备份:每个小时归档一次最近24小时的数据,同时每天归档一次最近30天的数据,那么当系统出现灾难性故障的时候,可以恢复(对于灾难恢复来说RDB是非常好的选择,可以将一个单独的文件压缩后转移到其他的存储介质上)
3、性能最大化:对于redis进程而言,在开始持久化的时候,它唯一需要做的是,弄出一些子进程,之后的由子进程完成这些持久化的工作,极大的避免服务器进程执行IO操作
4、与AOF相比优势:启动效率更高
劣势:
1、想保证数据的高可用性(最大限度避免数据的丢失),那RDB不是一个很好的选择(如果系统在定时持久化之前发生故障,那么数据还没来得及往磁盘上写,数据就已经丢失了)
2、子进程协助完成持久化,因此当数据集很大的时候,可能会导致服务器停止几百毫秒
RDB 优势:
1.数据库只包含一个文件,通过文件备份策略,定期配置,恢复系统灾难
2.压缩文件转移到其他介质上
3.性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作 ,避免服务器进程执行I/O操作,启动效率高
劣势:如果宕机,数据损失比较大,因为它是没一个时间段进行持久化操作的。也就是积攒的数据比较多,一旦懵逼,就彻底懵逼了
RDB:定期将数据存入磁盘,dump.rdb文件
RDB 优势: 1.redis数据库只包含一个文件,对于文件备份而言是非常完美的,一旦系统出现灾难性的故障是比较方便恢复的,定时配置。 2.可以将一个单独的文件压缩后转移到其他存储介质上 。如:拷贝到其他地方,恢复时使用就好。3.性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作 ,避免服务器进程执行I/O操作,启动效率高
RDB劣势:
如果想保证数据的高可用性,也就是最大限度避免数据的丢失,那么RDB将不是一个很好的选择,因为系统一定在定时持久化之前出现一些死机的情况,那么它还没有来的急往硬盘上写,数据就丢失了。
2.由于RDB是通过子进程来协助完成数据持久化操作的,因此如果当数据集非常大的时候,可能会导致整个服务器需要停止几百毫秒甚至是1秒钟。
Redis持久化
保存文件
/user/local/redis/dump.rdb
Redis持久化
/user/local/redis/redis.config
900秒有一个变量发生变化,发生一次持久化
300秒,10次
60秒,10000次
redis持久化
RDB 优势: 1.redis数据库只包含一个文件,对于文件备份而言是非常完美的,一旦系统出现灾难性的故障是比较方便恢复的,定时配置。 2.可以将一个单独的文件压缩后转移到其他存储介质上 。如:拷贝到其他地方,恢复时使用就好。3.性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作 ,避免服务器进程执行I/O操作,启动效率高
RDB劣势:
如果想保证数据的高可用性,也就是最大限度避免数据的丢失,那么RDB将不是一个很好的选择,因为系统一定在定时持久化之前出现一些死机的情况,那么它还没有来的急往硬盘上写,数据就丢失了。
2.由于RDB是通过子进程来协助完成数据持久化操作的,因此如果当数据集非常大的时候,可能会导致整个服务器需要停止几百毫秒甚至是1秒钟。
RDB配置:https://www.imooc.com/video/14935/261
RDB 优势: 1.数据库只包含一个文件,通过文件备份策略,定期配置,恢复系统灾难 2.压缩文件转移到其他介质上 3.性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作 ,避免服务器进程执行I/O操作,启动效率高 劣势: 1.无法高可用:系统一定在定时持久化之前宕机,数据还没写入,数据已经丢失 2.通过fock分叉子进程完成工作,数据集大的时候,服务器需要停止几百毫秒甚至1秒 配置: cd /usr/local/redis vim redis.conf 默认: save 900 1 #每900秒至少1个key变化,持久化一次,到内存一个快照 save 300 10 #每300秒至少10个key变化,往硬盘写一次 save 60 10000 #每60秒至少10000个key变化,写一次 dbfilename dump.rdb #数据的文件名 dir ./ #保存的路径,redis路径下
RDB在redis.conf中的配置 在文件143行
save 900 1 900 秒至少有1个可key发生变化则存储
dbfilename dump.rdb 存储文件名
dir ./ 存储文件路径
RDB持久化
优势:每小时或者每分钟归档一次
如果aof的数据集过大,rdb的启动方式很快。
劣势:如果持久化以前,宕机,也就是30s持久化一次,25s的时候宕机,这25s的数据了还没写到硬盘就没了。
redis 默认使用RDB 方式持久化
save 900 1 每900秒至少一个key发生变化,就保存一次
save 300 10
save 60 10000
dbfilename dump.rdb 数据文件名
保存的路径是 dir ./ 也就是当前路径下
save 900 1 每900秒至少一个key发生变化,就保存一次
save 300 10
save 60 10000
dbfilename dump.rdb 数据文件名
保存的路径是 dir ./
RDB 优势:
数据库只包含一个文件,通过文件备份策略,定期配置,恢复系统灾难
压缩文件转移到其他介质上
性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作,避免服务器进程执行I/O操作,启动效率高
缺点:
不适合数据的高可用性,没有写入磁盘之前,出现故障,数据就丢失
通过子进程方式完成数据持久化,当数据集非常大的时候,可能会导致服务器停止一段时间几百毫秒(),
RDB相关配置:
在redis.conf中默认支持
save 900 1 在900秒内至少有一个key变化则保存一次
rdb.dump文件
RDB 优势: 1.数据库只包含一个文件,通过文件备份策略,定期配置,恢复系统灾难 2.压缩文件转移到其他介质上 3.性能最大化,redis开始持久化时,分叉出进程,由子进程完成持久化的工作 ,避免服务器进程执行I/O操作,启动效率高 劣势: 1.无法高可用:系统一定在定时持久化之前宕机,数据还没写入,数据已经丢失 2.通过fock分叉子进程完成工作,数据集大的时候,服务器需要停止几百毫秒甚至1秒 配置: cd /usr/local/redis vim redis.conf 默认: save 900 1 #每900秒至少1个key变化,持久化一次,到内存一个快照 save 300 10 #每300秒至少10个key变化,往硬盘写一次 save 60 10000 #每60秒至少10000个key变化,写一次 dbfilename dump.rdb #数据的文件名 dir ./ #保存的路径,redis路径下
dbfilename dump.rdb 数据文件名,保存的路径是./当前路径
每隔一定时间变化,会往数据库中写入数据
RDB方式的优点:
1、数据备份
2、灾难恢复
3、性能最大化