redis数据持久化-RDB

介绍

redis是内存数据库,常用来缓存数据,读写速度快。基于内存一旦断电,数据丢失,redis 持久化非常重要。

RDB

  • rdb(Redis DataBase): 在指定的时间间隔类将内存的数据集写入磁盘

  • 启动时磁盘文件自动恢复到内存中,通过Redis自己的扫描程序进行处理,需要将RDB备份文件放在redis设置的dir目录下自动恢复, config get /set dir 查看配置目录

  • 优势

  • 每隔一段时间,自动全量备份
  • 灾备简单,只需要远程传输即可
  • RDB备份时通过一个子进程来进行备份(fork一个新进程)所有的都是以fork这个新进程的时点为分界线,只复制这个时点前的镜像数据,对主进程是不影响的
  • 劣势
  • 发生故障时,一定会丢失一部分备份后的数据
  • 由于fork的新进程会复制所有数据,所以主机的内存会在备份的一瞬间膨胀两倍
  • 如果想要通过定时备份进行数据实时处理是做不到的

持久化配置

redis.conf

#rdb持久化配置默认RDB时开启的,save就保存操作:自动触发bgsave命令
save 900 1  # 900s内,发生一次变化,更新到rdb
save 300 10  # 300s内,发生10次变化,更新到rdb
save 60 10000 # 60s内,发生10000次变化,更新到rdb

# The filename where to dump the DB
# 持久化文件名
dbfilename dump.rdb  # 默认持久化文件

#持久化目录  ./ 当前目录
dir ./
# 设置RDB存放的名称
dbfilename dump.rdb
# yes:如果save过程中出错,则停止写入操作 no:无论是否写入成功都不停止写入操作
stop-writes-on-bgsave-error yes
# 是否启用压缩
rdbcompression yes
# 是否开启数据校验,有一定的性能损耗
rdbchecksum yes

默认生成 dump.db 持久化文件
在这里插入图片描述

  • 触发方式
  • save
    执行save 命令触发,只保存,会阻塞当前操作
  • bgsave
    该命令会fork一个新进程进行数据的操作,后台异步持久化
  • flushdb命令触发
  • shutdown 退出时触发

总结

1、大规模的数据恢复,合适
2、对数据完整性和一致性的要求不高的情况下!
3、按照save配置来定时做备份,redis意外down掉,最后的一次快照数据就有可能丢失!
4、内存中的数据被克隆了一份,所以说空间可能会占用较大。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>